#ifndef DEMO #include #include #endif #define MAX 100 #define TWICE_AWFUL(x) x*2 #define TWICE_BAD(x) ((x)+(x)) #define TWICE_OK(x) ((x)*2) #define NEW(type,count) (type*)malloc(sizeof(type)*(count)) typedef struct { int x,y; } Point; int main() { // What happens here? int y=3; int z=4; int w=TWICE_AWFUL(y+z); #ifndef DEMO printf("w = %d\n", w); #endif y=7; z=TWICE_BAD(++y); #ifndef DEMO printf("y = %d\n", y); printf("z = %d\n", z); #endif z=TWICE_BAD(y++); #ifndef DEMO printf("y = %d\n", y); printf("z = %d\n", z); #endif if (y = 15) { char* c = NEW(char,MAX); Point* myPoint = NEW(Point,1); #ifndef DEMO printf("y = %d\n", y); #endif } return 0; }