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

angular - DownloadURL return null in below code -

python 2.7 - Given three nested dictionaries, sort the top two nested dictionaries from a value in the innermost dictionary? -