Различие между длинными и типами данных int [дубликат]

добавьте параметр -expandproperty после объекта select, он вернет только данные без заголовка.

46
задан Pooven 7 March 2014 в 10:50
поделиться

5 ответов

Из эта ссылка:

Изначально предполагалось, что int "естественный" размер слова процессор. Многие современные процессоры могут обрабатывать слова разного размера с одинаковыми легкость.

Также этот бит:

На многих (но не на всех) C и C ++ реализации, long больше, чем инт. Самый популярный на сегодняшний день рабочий стол платформы, такие как Windows и Linux, работать в основном на 32-битных процессорах и большинство компиляторов для этих платформ используют 32-битное int, которое имеет тот же размер и представление как длинное.

53
ответ дан 26 November 2019 в 20:11
поделиться

Стандарт дает вам следующие гарантии:

1 == sizeof(char) <= sizeof(short) <= sizeof (int) <= sizeof(long) <= sizeof(long long)

Таким образом, он полностью применим для sizeof (int) и sizeof (long) to быть равными, и многие платформы предпочитают использовать этот подход. Вы найдете некоторые платформы, где int - 32 бита, long - 64 бита, а long long - 128 бит, но это кажется очень распространенным для sizeof (long) равным 4.

(Обратите внимание, что long long распознается в C, начиная с C99, но обычно реализовывалось как расширение в C ++ до C ++ 11.)

42
ответ дан 26 November 2019 в 20:11
поделиться

Вы работаете на 32-битной машине или 64-битной машине Windows. На моей 64-битной машине (под управлением ОС Unix, а не Windows) sizeof (int) == 4 , но sizeof (long) == 8 . . 1295] Они разных типов - иногда одного размера, иногда нет.

(В старые времена sizeof (int) == 2 и sizeof (long) == 4 - хотя это могло быть за несколько дней до того, как C ++ появился, подумайте об этом. Тем не менее, технически это законная конфигурация, хотя и необычная за пределами встроенного пространства, и вполне возможно необычная даже во встроенной пробел.)

17
ответ дан 26 November 2019 в 20:11
поделиться

На платформах, где они имеют одинаковый размер, ответ будет ничем. Оба они представляют собой 4-байтовые значения со знаком.

Однако вы не можете полагаться на это. Стандарт окончательно не определяет размер long и int. Компиляторы могут давать типам разные размеры и, следовательно, нарушать это предположение.

4
ответ дан 26 November 2019 в 20:11
поделиться

Long должен быть как минимум того же размера, что и int, и, возможно, но не обязательно, длиннее.

В обычных 32-битных системах и int, и long имеют 4 байта. / 32-бит, и это действительно согласно спецификации C ++.

В других системах int и long long могут иметь другой размер. Раньше я работал на платформе, где int было 2 байта, а long - 4 байта.

3
ответ дан 26 November 2019 в 20:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: