То, что вы знаете, неверно.
В отличие от некоторых других языков, таких как Java, точный размер int
и long
в C определяется реализацией (без установленных ограничений).Ясно, что вы используете платформу, где int
имеет ширину 32 бита, но на других платформах это может быть 16 бит, а на некоторых платформах int
имеет ширину 64 бита.
Аналогично, на некоторых платформахlong
имеет ширину 32 бита;на других он имеет ширину 64 бита.Это могло бы быть еще шире, если бы платформа решила сделать это так.