SylixOS对C语言的基本数据类型进行了重定义,重定义操作是在“include/arch/xxx/arch_types.h”文件中定义的。
类型 | 定义 | 说明 |
---|---|---|
VOID | void | void 类型 |
BOOL | int | 布尔变量定义 |
PVOID | void * | void * 类型 |
CPVOID | const void * | const void * |
CHAR | char | 8 位字符变量 |
UCHAR | unsigned char | 8 位无符号字符变量 |
PUCHAR | unsigned char * | 8 位无符号字符变量指针 |
PCHAR | char * | 8 位字符指针变量 |
CPCHAR | const char * | const char * |
BYTE | unsigned char | 8 位字节变量 |
PBYTE | unsigned char * | 8 位字节变量指针 |
LONG | long | 32/64 位数定义 |
ULONG | unsigned long | 32/64 位无符号数定义 |
INT | int | 编译器相关 int |
UINT | unsigned int | 编译器相关 unsigned int |
SINT | signed int | 编译器相关 signed int |
INT8 | signed char | char |
UINT8 | unsigned char | 8 位无符号数定义 |
SINT8 | signed char | 8 位有符号数定义 |
INT16 | short | short |
UINT16 | unsigned short | 16 位无符号数定义 |
SINT16 | signed short | 16 位有符号数定义 |
INT32 | int | long or int |
UINT32 | unsigned int | 32 位无符号数定义 |
SINT32 | signed int | 32 位有符号数定义 |
INT64 | long long | long long |
UINT64 | unsigned long long | 64 位无符号数定义 |
SINT64 | signed long long | 64 位有符号数定义 |
INTREG | volatile unsigned int | 定义处理器中断寄存器 |
注意:
- 类型在和体系结构下分别定义,但发现所有体系结构下定义是相同的。
- INT8 必须是 signed 型. 这样 int8_t 才能保证是 signed 型.很多编译器默认 char 是 unsigned. 所以这里必须强制将 INT8 定义为 signed 型.
- INTREG 仅用于记录开关中断状态, 而非整个标志寄存器, 所以 x86-64 也使用 32 位 unsigned int 类型