关于c ++:整数类型的最小大小


Minimum sizes for integral types

本问题已经有最佳答案,请猛点这里访问。

假设我想编写一个最低标准的编译器,我已经达到了实现整型的需要。我是否正确地假设我可以根据这个表最小化整型的大小?

char:标准授权sizeof(char)始终为1。因此,1字节。

short中必须至少有2个字节。因此2字节。

int:不得小于short。因此2字节。

long:不得小于int。因此2字节。

long long必须比long长。因此,17位(即-65536到+65535)如果我实现了两个恭维:我认为这是我可以做的选择)。

bool:标准没有规定尺寸。因此1位。

我知道我不需要支持std::int64_t及其未签名的表亲。我需要支持std::int32_t还是编译器的自由裁量权?


(P)字母名称(p)(P)目前的六种不同类型通过执行。The Standard only requires size relations between the data types and minimum sizes for each data type:(p)(P)1.The relation requirements are that the EDOCX1 commercial 0 is not smaller than EDOCX1 commercial,which is not smaller than EDOCX1 commercial 2,which is not smaller than EDOCX1 commercial 3.As EDOCX1 is size is always the minimum supported data type,all other data type s can't be smaller.(p)(P)The minimum size for EDOCX1 penal is 8 bits,the minimum size for EDOCX1 pental 3 communal and EDOCX1 penal 2 is 16 bits,for EDOCX1 penal 1 is 32 bits and EDOCX1 penograph 0 must contain at least 64 bits.(p)(P)To obtain the max/min number for each type you can call:(p)字母名称(P)Or C Solution:(p)字母名称