枚举对象不应参与位运算或算数运算
10.2.5 ID_illEnumOperation
枚举类型的底层整数类型由实现定义,应避免枚举对象参与位运算或算数运算,以防止意料之外的错误并提高可移植性。
示例:
enum {
FlagA = 0x1234,
FlagB = 0xABCD
};
bool foo(uint16_t x) {
return (x & FlagA) != 0; // Non-compliant
}
相关
依据
ISO/IEC 9899:1999 6.7.2.2(4)-implementation
ISO/IEC 9899:2011 6.7.2.2(4)-implementation
ISO/IEC 14882:2011 7.2(6)-implementation
ISO/IEC 14882:2017 10.2(7)-implementation
参考
MISRA C 2012 10.1