In C il massimo valore di un INT non è sempre uguale, dipende dal compilatore (che decide in base all'architettura). Ad esempio può essere di 16 bit oppure di 32.

E non tutti i computer del mondo sono architetture x86...