Размер типа int варьируется между 2 и 4 байтами на разных платформах из-за того, что стандарт C не стандартизирует размер целочисленных типов. 3
Размер занимаемой памяти устанавливается не стандартом C, а компилятором. 3 При этом стандарт определяет только минимальные размеры, чтобы компилятору не приходилось генерировать дополнительный код для управления поведением типа int. 1
Например, на небольшом микропроцессоре с 8-разрядными регистрами 16-битные целые числа (2 байта) имеют больше смысла, так как память, вероятно, не очень большая, и хранение 4 байт для каждого целого числа может быть нецелесообразным. 1 На 32- или 64-разрядной машине, наоборот, наличие больших целых чисел не является недостатком, а 32-разрядные целочисленные операции имеют ту же скорость, что и операции меньшего размера. 1