На разных платформах int
имеют разные размеры в C. Иногда, как вы сказали, они имеют размер 2 байта, иногда 4 и т. Д. Итак, если это 2 байта, то это 16 бит, поэтому он может хранить2 ^ 16 = 65536 различных значений.Поскольку вы используете значение со знаком, половина этих значений отрицательна, поэтому вы не можете ввести большее значение для int
здесь.Однако, если вы используете C99 или более позднюю версию, вы можете использовать int32_t
, включая stdint.h
.Это позволит вам хранить до 2 ^ 31 - 1 = 2 147 483 647.