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 -

meteor - inserting data to database gives error "insert failed: Method '/texts/insert' not found" -