// ( r4.C ) // 関数の外部宣言 $ CC -o r4 r4.o r4s.o -O -v // #include extern void error( char* p ) ; extern int calc( int,int ) ; extern double calc( double,int ) ; extern double calc( double,double ) ; extern float calc( float,int ) ; void main() { cout << calc( 3,2 ) << "\n" ; cout << calc( 3.5,2 ) << "\n" ; cout << calc( 3.5,2.5 ) << "\n" ; cout << calc( 3.5f,2 ) << "\n" ; cout << calc( 3.0f,-2 ) << "\n" ; } /* [結果] 6 7 8.75 7 Error-4 ! */ /* ----------- r4s.C 側のプログラムの記述 -------------------------- #include #include // exit use void error( char* p ) { cerr << p << "\n" ; exit(1) ; } int calc( int x,int n ) { if ( n < 0 ) error("Error-1 !") ; return x*n ; } double calc( double x,int n ) { if ( n < 0 ) error("Error-2 !") ; double p = double(n) ; return x*p ; } double calc( double x,double n ) { if ( n < 0.0 ) error("Error-3 !") ; return x*n ; } float calc( float x,int n ) { if ( n < 0 ) error("Error-4 !") ; float p = float(n) ; return x*p ; } ------------------------------------------------------------------- */