/*---------------------------------------------------------------------+
|                Copyright (c) 1995, SAS Institute Inc.                |
|                  Unpublished - All Rights Reserved                   |
|                      S A S / C   S A M P L E                         |
|                                                                      |
|                                                                      |
|         NAME: CXXTOC2                                                |
|     LANGUAGE: C                                                      |
|      PURPOSE: Call a C++ function from a C main(). Then, call a C    |
|               function from a C++ function.                          |
|   MVS -                                                              |
|      COMPILE: Compiled using LC370C for C, LCXX for C++.             |
|         LINK: Linked using LCXXL.                                    |
|      EXECUTE: Call <prefix>.LOAD(CXXTOC).                            |
|        NOTES:                                                        |
|   TSO -                                                              |
|      COMPILE: Compile using LC370C for C, LCXX for C++.              |
|         LINK: Link the C and C++ object modules using CLK370 with    |
|               "CXX" option.                                          |
|      EXECUTE: Call <prefix>.LOAD(CXXTOC).                            |
|        NOTES:                                                        |
|   CMS -                                                              |
|      COMPILE: Compile using LC370C for C, LCXX for C++.              |
|         LINK: Link the C and C++ object modules using CLINK with     |
|               "CXX" and "GENMOD" options.                            |
|      EXECUTE: Call CXXTOC.                                           |
|        NOTES:                                                        |
|   MISC NOTES: This example consists of 2 modules. CXXTOC1 is the C   |
|               source module. CXXTOC2 is the C++ source module.       |
|                                                                      |
+---------------------------------------------------------------------*/

#include <stdio.h>

void cnext();
extern  void callc();          /* the C function called from C++   */

extern gotoc()              /* the C++ function called from C   */
{
printf("This is C function gotoc()\n");
printf("Call another C function\n");
cnext();
printf("Returning to C++ main()\n");
return 0;
}

void cnext()                    /* another C function             */
{
printf("This is C function cnext()\n");
printf("Call a C++ function from C\n");
callcxx();
printf("Back in C function cnext()\n");
}