我将 MACRO#define
用于不同的数据类型,如下所示。
#define CCP_BYTE unsigned char
#define CCP_WORD unsigned short
#define CCP_DWORD unsigned long
无论我在哪里使用这些MACROs
.
在 typedef 之外使用修饰符或类型“无符号”[MISRA 2012 Directive 4.6,咨询]
在 typedef 之外使用修饰符或类型“短”[MISRA 2012 Directive 4.6,咨询]
在 typedef 之外使用修饰符或类型“long”[MISRA 2012 Directive 4.6,咨询]
无论我在 if 语句中对测试条件进行类型转换,在所有实例中都观察到警告,如下所示。
在 typedef 之外使用修饰符或类型“_Bool”[MISRA 2012 Directive 4.6,咨询]
if( !(bool) ChkStatus)
{
/* execute if satisfy */
}
我提到了SO question,它讨论了这个 bool 类型的查询。但是,除了禁用此规则之外,还有其他方法可以消除这些警告。