C определяет количество целочисленных типов и определяет соотношение их размеров.По сути, это говорит о том, что sizeof (long long)> = sizeof (long)> = sizeof (int)> = sizeof (short)> = sizeof (char) и этот sizeof (char) == 1.
Но фактические размеры не определены и зависят от архитектуры, на которой вы работаете.На 32-битном ПК int и long обычно составляют четыре байта, а long long - 8 байтов.Но в 64-битной системе long обычно составляет 8 байтов и, таким образом, отличается от int.
Существует также тип с именем uintptr_t (и intptr_t), который гарантированно будет иметь тот же размер, что и указатели данных.1005 *
Важно помнить, что нельзя предполагать, что вы можете, например, хранить значения указателя в long или int.Быть переносимым, вероятно, важнее, чем вы думаете, и вполне вероятно, что вы захотите скомпилировать свой код в 64-битной системе в ближайшем будущем.