c - sizeof() operator in if-statement -


#include <stdio.h> main() {     if (sizeof(int) > -1)         printf("true");     else         printf("false"); } 

it prints false. why doesn't sizeof() return value in if?

  1. sizeof not function, it's operator. parentheses not part of operator's name.
  2. it's failing because value generated has unsigned type size_t, causes "the usual arithmetic conversions" in -1 converted unsigned, in case it's large number.

basically you're comparing 4 > 0xffffffffu, or close @ least. see question details.


Comments

Popular posts from this blog

Is there a better way to structure post methods in Class Based Views -

php - Cannot override Laravel Spark authentication with own implementation -

What is happening when Matlab is starting a "parallel pool"? -