ZHCUAQ1G June 2015 – August 2025
有关数据类型的基本信息,请参阅节 7.3。表 8-1 列出了各种数据类型的寄存器和内存存储空间:
| 数据类型 | 寄存器存储 | 内存存储 |
|---|---|---|
| char | 寄存器的0-7位 | 8 位,与 8 位边界对齐 |
| unsigned char | 寄存器的0-7位 | 8 位,与 8 位边界对齐 |
| short | 寄存器的0-15位 | 16 位,与 16 位边界对齐 |
| unsigned short | 寄存器的0-15位 | 16 位,与 16 位边界对齐 |
| int | 整个寄存器 | 32 位,与 32 位边界对齐 |
| unsigned int | 整个寄存器 | 32 位,与 32 位边界对齐 |
| enum (1) | 整个寄存器或偶数/奇数寄存器对 | 32 位(与 32 位边界对齐)或 64 位(与 64 位边界对齐) |
| float | 整个寄存器 | 32 位,与 32 位边界对齐 |
| long | 整个寄存器 | 32 位,与 32 位边界对齐 |
| unsigned long | 整个寄存器 | 32 位,与 32 位边界对齐 |
| __int40_t | 偶数/奇数寄存器对 | 64 位,与 64 位边界对齐 |
| unsigned __int40_t | 偶数/奇数寄存器对 | 64 位,与 64 位边界对齐 |
| long long | 偶数/奇数寄存器对 | 64 位,与 64 位边界对齐 |
| unsigned long long | 偶数/奇数寄存器对 | 64 位,与 64 位边界对齐 |
| double | 偶数/奇数寄存器对 | 64 位,与 64 位边界对齐 |
| long double | 偶数/奇数寄存器对 | 64 位,与 64 位边界对齐 |
| __x128_t(仅 C6600)(2) | 四倍字寄存器 | 128 位,与 64 位边界对齐 |
| 结构体 | 成员按其各自类型的要求存储。 | 存储器是最大成员类型边界对齐的倍数;成员根据其各自类型的要求进行存储和对齐。 |
| 数组 | 成员按其各自类型的要求存储。 | 成员按其各自类型的要求存储。(3)结构中的所有数组都根据数组中每个元素的类型对齐。 |
| 指向数据成员的指针 | 寄存器的0-31位 | 32 位,与 32 位边界对齐 |
| 指向成员函数的指针 | 组件按其各自类型的要求存储 | 32 位,与 32 位边界对齐 |
| cchar(4) | 寄存器的0-15位 | 16 位,与 8 位边界对齐 |
| cshort(4) | 寄存器的0-31位 | 32 位,与 16 位边界对齐 |
| cint(4) | 偶数/奇数寄存器对 | 64 位,与 32 位边界对齐 |
| cfloat(4) | 偶数/奇数寄存器对 | 64 位,与 32 位边界对齐 |
| clonglong(4) | 四倍字寄存器 | 128 位,与 64 位边界对齐 |
| cdouble(4) | 四倍字寄存器 | 128 位,与 64 位边界对齐 |