#include #include #define absoluteVal(x) ( ((x) > 0) ? (x) : -(x) ) int (absoluteVal)( int x ) { printf("INVOKING FUNCTION\n" ); return x > 0 ? x : -x; } #define printInt(expr) (printf("%s=%d\n",#expr, expr)) int intCmp( const void * lhs, const void * rhs ) { const int firstint = *(const int *) lhs; const int secondint = *(const int *) rhs; return firstint - secondint; } int main( ) { int x = -7; int y = 5; double pi=3.14; int arr[ ] = { 4, 8, 7, 6, 5, 2, 1 }; int N = 7; int i; printf( "x = %d\n", x ); printf( "absoluteVal(x) = %d\n", absoluteVal(x) ); printf( "y = %d\n", y ); printf( "absoluteVal(y) = %d\n", absoluteVal(y) ); printf( "pi = %lf\n", pi ); printf( "absoluteVal(pi) = %lf\n", absoluteVal(pi) ); printf( "x+y = %d\n", x+y ); printf( "absoluteVal(x+y) = %d\n", absoluteVal(x+y) ); printf( "absoluteVal(x+y)+absoluteVal(x+y) = %d\n", absoluteVal(x+y)+absoluteVal(x+y) ); printf( "y = %d\n", y ); printf( "absoluteVal(++y) = %d\n", (absoluteVal)(++y) ); printf( "absoluteVal(y) = %d\n", absoluteVal ); printInt( x ); printInt( y ); printInt(x+y); printInt(absoluteVal(x+2*y)); qsort( arr, N, sizeof( int ), intCmp ); for( i = 0; i < N; i++ ) printInt( arr[i] ); return 0; }