/* ECP: FILEname=fig5_8.c */ /* 1*/ #define Square( X ) ( ( X ) * ( X ) ) /* 2*/ double /* 3*/ ( Square )( double X ) /* Parentheses Are Required */ /* 4*/ { /* 5*/ return X * X; /* 6*/ } /* 7*/ main( void ) /* 8*/ { /* 9*/ double A = 5.0; /*10*/ printf( "%f\n", Square( A ) ); /* Macro Call */ /*11*/ printf( "%f\n", ( Square )( A++ ) ); /* Function Call */ /*12*/ return 0; /*13*/ }