整数类型的最小尺寸

时间:2014-09-25 09:10:24

标签: c++

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

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还是编译器可以自行决定?

1 个答案:

答案 0 :(得分:2)

enter image description here

整数类型的实际大小因实现而异。标准只要求数据类型之间的大小关系和每种数据类型的最小大小:

关系要求是long long不小于longint不小于shortchar不小于char。由于short的大小始终是受支持的最低数据类型,因此所有其他数据类型都不能更小。

int的最小大小为8位,longlong long的最小大小为16位,#include <limits> const int min_int = std::numeric_limits<int>::min(); const int max_int = std::numeric_limits<int>::max(); 的最小大小为32位,#include <limits.h> const int min_int = INT_MIN; const int max_int = INT_MAX; 必须包含至少64位。


要获取您可以调用的每种类型的最大/最小数量:

{{1}}

或C解决方案:

{{1}}