/*---------------------------------------------------------------------+
|                Copyright (c) 1995, SAS Institute Inc.                |
|                  Unpublished - All Rights Reserved                   |
|                      S A S / C   S A M P L E                         |
|                                                                      |
|                                                                      |
|         NAME: CXXTOC1                                                |
|     LANGUAGE: C++                                                    |
|      PURPOSE: Call a C function from a C++ main(). Then, call a C++  |
|               function from a C function.                            |
|   MVS -                                                              |
|      COMPILE: Use AUX(CXXTOC). Compiled using LC370C for C, LCXX     |
|               for C++.                                               |
|         LINK: Use AUX(CXXTOC). Linked using LCXXL.                   |
|      EXECUTE: Use AUX(CXXTOC). 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 <iostream.h>
extern "C" gotoc();             /* the C function called from C++   */
void main()                              /* a C main()                */
{
cout <<"Starting in C++ main()" << endl;
cout <<"Call a C function" << endl;
gotoc();
cout <<"Leaving the C++ main()" << endl;
}

void extern "C" callcxx()            /* a C++ function           */
{
cout <<"This is C++ function callcxx()" << endl;
cout <<"Returning to C" << endl;
}