#include #define DUMB_ZERO(X) ((X)-(X)) int val = -33; int dumb () { return val++; } int TODAY_IS_THURSDAY = 1; #define VERIFY(EXP) do { if (! (EXP)) { fprintf (stderr, "*** Failed to verify that %s on line %d of %s\n", #EXP, __LINE__, __FILE__); } } while (0) int main (int argc, char *argv[]) { printf ("val was %d\n", val); printf ("DUMB_ZERO(val++) = %d\n", DUMB_ZERO(val++)); printf ("DUMB_ZERO(dumb()) = %d\n", DUMB_ZERO(dumb())); printf ("val is now %d\n", val); VERIFY(val > 0); if (TODAY_IS_THURSDAY) VERIFY(val > 0); else printf ("On other days, we vote for hoodies.\n"); }