如何根据 MISRA 正确转换 NULL?

How to properly cast NULL according to MISRA?

提问人:Imtiaz Kabir 提问时间:1/13/2023 最后编辑:LundinImtiaz Kabir 更新时间:1/13/2023 访问量:98

问:

(char *) NULL或触发器。char * msg = NULLMISRA 10.5: The value of an expression should not be cast to an inappropriate essential type

那么将 NULL 转换为某个指针的正确方法是什么?

N.B.:我在CLion中使用MISRA检查。

C 指针 转换 null misra

评论


答:

2赞 Lundin 1/13/2023 #1

假设您没有定义自制版本(这将是另一个 MISRA 违规行为),那么就可以了,并且符合 MISRA。在准则中的多个位置,从空指针常量转换为指针类型而不进行强制转换,以符合要求。NULLchar* msg = NULL;

(char *) NULL看起来像是胡说八道,这应该达到什么目的?

无论哪种方式,规则 10.5 都与此无关,因为该规则是关于值转换的,而不是关于指针转换的。因此,您的 MISRA 检查器似乎已损坏,就像它们通常一样。