我在Code Composer Studio中使用 MISRA C 2004 标准。在外围设备的初始化过程中,我总是收到有关按位运算的错误。
在编译器.h文件中,定义是这样的。
#define SFR_8BIT(addr) extern volatile unsigned char addr
SFR_8BIT(REG1);
#define REG2 REG1
现在在我的代码中,如果我使用
REG2 |= 0x01;
MISRA C 弹出这些错误:
位运算符不应应用于基础类型已签名的操作数 - #1393-D (MISRA-C:2004 10.1/R)
如果整数类型的表达式的值不是转换为具有相同符号的整数类型,则不应将其隐式转换为不同的基础类型。
我不想更改编译器 .h 文件,我想消除这些警告。