Beware of coma (and comma)

Consider the following code:

int main(void)
{
 int x=10;

 if(x > 30,400)
	printf("yes\n");
 else
	printf("no\n");

 x=100;

 if(x > 30,400)
	printf("yes\n");
 else
	printf("no\n");


 return 0;
}

if you run it it will print:

yes
yes

The problem here is the extra comma in the if statement:

if(x > 30,400)

It is not a compilation error, instead the compiler parses it as 2 statements: x>30 and 400

The if statement is checking only the last statement and because 400 is true , it will always be true (no matter what x value is)

Conclusion:

Always check compiler warnings , make it display all warnings (-Wall) and use static analysis tools