1

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

不允许#undef宏吗?

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,咨询]

4

1 回答 1

2

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

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

于 2019-08-29T06:49:30.943 回答