【问题标题】:use of '#undef' is discouraged: 'ssCmd' [MISRA 2012 Rule 20.5, advisory]不鼓励使用“#undef”:“ssCmd”[MISRA 2012 规则 20.5,咨询]
【发布时间】:2019-08-27 09:18:33
【问题描述】:

我正在定义一些宏 - #define 临时内部代码,使用后我有 #undef

不可以#undefMACRO吗?

void c_cmd(unsinged char *com)
{ 

int abc = com[0];
int res = 0;

switch(abc)
{
    case 1:
             #define ssCmd                 com[2]  /* SRT or STP*/
             res = abc + ssCmd;     
             /* part of some functionality */          

             #undef ssCmd 
             break;

    default:
             break;

}

}

观察到的警告:

不鼓励使用“#undef”:“ssCmd”[MISRA 2012 规则 20.5, 咨询]

【问题讨论】:

标签: c misra pc-lint


【解决方案1】:

是的,MISRA 规则 20.5 规定不应使用 #undef。这是一条建议性规则。

#undef 通常不需要。当在代码中使用宏时,它的使用可能会导致对宏的存在或含义产生混淆。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多