ZHCADC3B February 2019 – October 2023
整数值使用二进制补码表示法。浮点值使用 IEEE 754.1 表示法表示。浮点运算在硬件支持的程度上遵循 IEEE 754.1。
表 2-1 提供 C 数据类型的大小和对齐方式(以位为单位)。
| 类型 | 通用名称 | 大小 | 对齐 |
|---|---|---|---|
| signed char | schar | 16 | 16 |
| unsigned char | uchar | 16 | 16 |
| char | 普通字符 | 16 | 16 |
| bool (C99) | uchar | 16 | 16 |
| _Bool (C99) | uchar | 16 | 16 |
| bool (C++) | uchar | 16 | 16 |
| short、signed short | int16 | 16 | 16 |
| unsigned short | uint16 | 16 | 16 |
| int、signed int | int16 | 16 | 16 |
| unsigned int | uint16 | 16 | 16 |
| long ,signed long | int32 | 32 | 32 |
| unsigned long | uint32 | 32 | 32 |
| long long、signed long long | int64 | 64 | 32 |
| unsigned long long | uint64 | 64 | 32 |
| enum | -- | 不尽相同(请参阅节 2.9) | 32 |
| float | float32 | 32 | 32 |
| double | float64 | 64 | 32 |
| long double | float64 | 64 | 32 |
| 指针 | -- | 32 | 16 |
此规范中使用的表中的通用名称以与语言无关的方式标识类型。
默认情况下,char 类型是无符号型。这与“signed char”和“unsigned char”类型不同,后者指定了它们的符号行为。
整数类型具有互补无符号变体。通用名称以“u”为前缀(例如 uint32)。
bool 类型使用值 0 表示 false,1 表示 true。其他值未定义。
C、C99 和 C++ 中的其他类型被定义为标准类型的同义词:
typedef unsigned long wchar_t;
typedef unsigned long wint_t;
typedef char * va_list;