/* ECP: FILEname=fig5_7.c */ /* 1*/ #define PrintDebug( Expr, Type ) \ /* 2*/ printf( __FILE__ "[%d](" #Expr "): %" Type##Conv "\n", \ /* 3*/ __LINE__, ( Expr ) ) /* 4*/ #define intConv "d" /* 5*/ #define doubleConv "f" /* 6*/ main( void ) /* 7*/ { /* 8*/ int X = 5, Y = 7; /* 9*/ double A = 5.0, B = 7.0; /*10*/ PrintDebug( X + Y, int ); /* Really Line 12 */ /*11*/ PrintDebug( A + B, double ); /* Really Line 13 */ /*12*/ return 0; /*13*/ }