stdint.h 与定宽整数类型
stdint.h 是标准头文件,用来提供 int8_t、uint16_t、uint32_t 这类定宽整数类型。
之所以需要它,是因为 int、short、long 的实际位宽和具体工具链、ABI、目标平台有关,不能直接拿来表达“这个字段必须就是 8 位/16 位/32 位”。
所以:
- 协议字段
- 寄存器映射
- 二进制布局
- RTOS 端口层类型
这类地方更适合直接用定宽类型,而不是赌 unsigned int 恰好等于你想要的宽度。
FreeRTOS 的 portmacro.h 里那些 StackType_t、TickType_t 等类型,本质上也是在做同一件事:把“当前端口该用什么宽度和什么自然类型”明确下来。
对照看:FreeRTOS 移植与配置