C++ sizeof整数类型

bru*_*iuz 0 c++

我从书中听到过关于C/C++中整数类型的最小尺寸的介绍

下面的大小以字节为单位:

  • sizeof(char) >= 1
  • sizeof(short) >= 2
  • sizeof(long) >= 4
  • sizeof(long long) >= 8

但我无法在标准中找到这些保证.那么编译器是否需要保证在C++ 98/C++ 2003/C89/C99标准中定义?

Luc*_*ore 6

这是不正确的,你的值乘以8.(注意,sizeof 1并不一定意味着8位,char中的位数CHAR_BIT- 最有可能是8位).

sizeof(char)保证是1.(以及unsigned charsigned char).

除此之外,

sizeof应用于任何其他基本类型(3.9.1)的结果是实现定义的.(5.3.3尺寸)

有一些排序限制sizeof(char) <= sizeof(int) <= sizeof(long long).