【发布时间】:2025-12-30 01:55:07
【问题描述】:
我必须解决以下问题:我正在使用这个结构之王来访问相同的变量但大小不同。
typedef struct {
union {
struct {
uint16 progressNumber;
};
uint8 progressNumberArr[2];
};
} ProgressNum_t;
ProgressNum_t totalProgressiveNumber;
通过这种方式,我可以访问一个 8 位数组(它对 SPI 通信很有用),也可以管理一个 16 位变量。在我的情况下,它是一个计数器,我必须管理溢出等等......
此过程运行良好,但对于 MISRA 规则,我不允许使用它(因为行为可能未定义)。
您有什么建议可以使用相同的“技巧”但符合 MISRA?
【问题讨论】:
-
你应该使用
stdint.h而不是一些自制的味道。
标签: c unions misra type-punning