ZHCUAQ1F july 2015 – april 2023
表 7-1列出了 C6000 编译器的每种标量数据类型的大小、表示形式和范围。许多范围值在头文件 limits.h 中作为标准宏命令提供。
节 8.2.1中介绍了数据类型的存储和对齐。
范围 | ||||
---|---|---|---|---|
类型 | 大小 | 表示 | 最小值 | 最大值 |
char、signed char | 8 位 | ASCII | -128 | 127 |
unsigned char | 8 位 | ASCII | 0 | 255 |
_Bool、bool | 8 位 | ASCII | 0 (false) | 1 (true) |
short | 16 位 | 二进制 | -32 768 | 32 767 |
unsigned short、wchar_t (1) | 16 位 | 二进制 | 0 | 65 535 |
int、signed int | 32 位 | 二进制 | -2 147 483 648 | 2 147 483 647 |
unsigned int | 32 位 | 二进制 | 0 | 4 294 967 295 |
long、signed long | 32 位 | 二进制 | -2 147 483 648 | 2 147 483 648 |
unsigned long | 32 位 | 二进制 | 0 | 4 294 967 295 |
__int40_t | 40 位 | 二进制 | -549 755 813 888 | 549 755 813 887 |
unsigned __int40_t | 40 位 | 二进制 | 0 | 1 099 511 627 775 |
long long、signed long long | 64 位 | 二进制 | -9 223 372 036 854 775 808 | 9 223 372 036 854 775 807 |
unsigned long long | 64 位 | 二进制 | 0 | 18 446 744 073 709 551 615 |
enum (2) | 不尽相同 | 二进制 | 不尽相同 | 不尽相同 |
float | 32 位 | IEEE 32 位 | 1.175 494e-38(3) | 3.40 282 346e+38 |
float complex (4) | 64 位 | 2 个 IEEE 32 位数组 | 1.175 494e-38 分别适用于实部和虚部 | 3.40 282 346e+38 分别适用于实部和虚部 |
double | 64 位 | IEEE 64 位 | 2.22 507 385e-308(3) | 1.79 769 313e+308 |
double complex (4)(5) | 128 位 | 2 个 IEEE 64 位数组 | 2.22 507 385e-308 分别适用于实部和虚部 | 1.79 769 313e+308 分别适用于实部和虚部 |
long double | 64 位 | IEEE 64 位 | 2.22 507 385e-308(3) | 1.79 769 313e+308 |
long double complex (4)(5) | 128 位 | 2 个 IEEE 64 位数组 | 2.22 507 385e-308 分别适用于实部和虚部 | 1.79 769 313e+308 分别适用于实部和虚部 |
指针、引用、指向数据成员的指针 | 32 位 | 二进制 | 0 | 0xFFFFFFFF |
有符号类型的负值用 2 的补码表示。
C、C99 和 C++ 的这些附加类型被定义为标准类型的同义词:
typedef unsigned int size_t;
typedef int ptrdiff_t;
typedef unsigned int wchar_t;
typedef unsigned int wint_t;
typedef char * va_list;