提问人:Imtiaz Kabir 提问时间:1/13/2023 最后编辑:LundinImtiaz Kabir 更新时间:1/13/2023 访问量:98
如何根据 MISRA 正确转换 NULL?
How to properly cast NULL according to MISRA?
问:
(char *) NULL
或触发器。char * msg = NULL
MISRA 10.5: The value of an expression should not be cast to an inappropriate essential type
那么将 NULL 转换为某个指针的正确方法是什么?
N.B.:我在CLion中使用MISRA检查。
答:
2赞
Lundin
1/13/2023
#1
假设您没有定义自制版本(这将是另一个 MISRA 违规行为),那么就可以了,并且符合 MISRA。在准则中的多个位置,从空指针常量转换为指针类型而不进行强制转换,以符合要求。NULL
char* msg = NULL;
(char *) NULL
看起来像是胡说八道,这应该达到什么目的?
无论哪种方式,规则 10.5 都与此无关,因为该规则是关于值转换的,而不是关于指针转换的。因此,您的 MISRA 检查器似乎已损坏,就像它们通常一样。
评论