# include # include # define DEBUG(fmt, ...) fprintf ( stderr, fmt, __VA_ARGS__ ) // // Program 18.3, Stephen Kochan, Programming in C. // int main ( int argc, char *argv[] ); int process ( int i1, int i2 ); int main ( int argc, char *argv[] ) { int arg1, arg2; if ( 2 <= argc ) { arg1 = atoi ( argv[1] ); } else { arg1 = 0; } if ( 3 <= argc ) { arg2 = atoi ( argv[2] ); } else { arg2 = 0; } #ifdef DEBUG fprintf ( stderr, "processed %i arguments\n", argc - 1 ); fprintf ( stderr, "arg1 = %i, arg2 = %i\n", arg1, arg2 ); #endif printf ( "%i\n", process ( arg1, arg2 ) ); return 0; } int process ( int i1, int i2 ) { int val; DEBUG("process (%i %i)\n", i1, i2 ); val = i1 * i2; DEBUG("return %i\n", val ); return val; }