dillon@CORY.BERKELEY.EDU (Matt Dillon) (08/18/88)
The following doesn't work properly:
#define FOO() (X++, 0)
main()
{
short X = 1;
if (FOO()) {
puts("Incorrect operation");
puts("This should never happen");
} else {
puts("Correct operation");
}
}
The problem stems from the ++ operator on X... the expression FOO()
is *always* 0 (remember the definition of the comma operator), yet when placed
in the if becomes dependant on the variable X.
I mailed the problem to Jim (manx@well.UUCP)
-Matt