我正在寻找关于基本c++类型大小的详细信息。
我知道这取决于架构(16位、32位、64位)和编译器。
但是c++有标准吗?
我在32位架构上使用Visual Studio 2008。以下是我得到的答案:
char : 1 byte
short : 2 bytes
int : 4 bytes
long : 4 bytes
float : 4 bytes
double: 8 bytes
我试图在不同的架构和编译器下找到char、short、int、long、double、float(以及其他我没有想到的类型)的大小的可靠信息,但没有多大成功。
更新:c++ 11将TR1中的类型正式引入标准:
Long Long int
Unsigned long long int
以及<cstdint>中的"size "类型
int8_t
int16_t
int32_t
int64_t
(以及未签名的副本)。
另外,你会得到:
int_least8_t
int_least16_t
int_least32_t
int_least64_t
加上未签名的对应项。
这些类型表示至少具有指定位数的最小整数类型。同样,也有“最快”的整数类型,至少具有指定的比特数:
int_fast8_t
int_fast16_t
int_fast32_t
int_fast64_t
加上无符号的版本。
“快”意味着什么,如果有的话,取决于实现。它也不需要在所有方面都是最快的。