[ Note from Magda: For readability, this output has been truncated by commenting out the #include directive inside the macro.c file] # 1 "macro.c" # 1 "" # 1 "" # 1 "macro.c" # 12 "macro.c" int sqr(int a) { return a*a; } int main() { int a = 3; int b = 4; int sum = ( (a) + (b) ); printf("%s:%d %s\n","macro.c",26,"got here");; int square = ( (a) * (a) ); printf("a: %d, b: %d, SUM: %d\n",a,b,sum); printf("a: %d, SQR: %d\n",a,square); int square2 = ( (a+2) * (a+2) ); int square2bad = ( a+2 * a+2 ); printf("a+2: %d, SQR: %d SQR_BAD: %d\n",a+2,square2,square2bad); printf("%s:%d %s\n","macro.c",37,"still got here");; int square3 = ( (a++) * (a++) ); printf("a: %d, SQR: %d\n",a,square3); int square4 = ( (++a) * (++a) ); printf("a: %d, SQR: %d\n",a,square4); return 0; }