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;