В чем разница между __int & lt; size & gt; и & quot; char, short, int, long long int & quot ;?

Я удивлен, увидев, что мой компилятор C ++ поддерживает __int8, __int16, __int32, а также __int64; Но я просто вижу, что они эквивалентны char, short, int, а также long long, В чем разница между ними?

sizeof(__int8) == sizeof(char) == 1
sizeof(__int16) == sizeof(short) == 2
sizeof(__int32) == sizeof(int) == 4
sizeof(__int64) == sizeof(long long) == 8

3

Решение

Размеры примитивных типов int, char, short, longи т. д. определяются реализацией и могут варьироваться от системы к системе. Все, что вам гарантировано, это

  • sizeof(char) == 1, а также
  • sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long),

В результате многие платформы предоставляют свои собственные непереносимые типы, которые гарантированно будут иметь заданные размеры. Например, я довольно уверен, что Microsoft гарантирует, что __int8 всегда восемь бит, __int16 всегда 16 бит и т. д.

Надеюсь это поможет!

5

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector