// ( t11.C ) // Cのル−チンを呼び出す C program : t11.c // $ cpc t11;cc t11;CC -o t11 t11.bin t11.o -O -v;t11 #include #include struct vec { int x,y ; } ; typedef struct vec Vec ; extern "C" char* get_strg() ; extern "C" int get_nint() ; extern "C" int& get_pint() ; extern "C" int& sub1(int) ; extern "C" { // これでもよい int& sub2(int*) ; Vec* sub3() ; void func( char*,int* ) ; } main() { int i = get_nint() ; cout << i << "\n" ; // 10 を返す char* s = get_strg() ; // katou int nlen = strlen(s) ; cout << nlen << "\n" ; // 5 int& j = get_pint() ; cout << j << "\n" ; // 20 int& k = sub1( 10 ) ; cout << k << "\n" ; // 30 int l = 40 ; int* m = &l ; // C : 40 int& n = sub2( m ) ; cout << n << "\n" ; // 41 Vec* o = sub3() ; cout << o->x << "\n" ; // 50 char ss[20] ; int* v = new int ; func( ss,v ) ; cout << ss << " " << *v << "\n" ; // haruo 555 delete v ; } /* [結果] Enter name : katou 順番通りに表示されない。Cのル−チンでは C : 40 入出力しない方がいいみたい。 10 5 20 30 41 50 haruo 555 */