工具/软件:TI C/C++编译器
编译器团队,
我们的客户还提出了这样的观点:为了符合C99,正确的NULL定义应该是: #define NULL ((void *) 0)
然而,目前的情况并非如此。 我们意识到,虽然我们不符合100 % C99,但我们支持许多C99扩展。
尽管如此,为了保持一致,我们也应遵守这项公约。
请参阅下图了解更多证据。 评论真的很受欢迎!
Ty,
CY
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:TI C/C++编译器
编译器团队,
我们的客户还提出了这样的观点:为了符合C99,正确的NULL定义应该是: #define NULL ((void *) 0)
然而,目前的情况并非如此。 我们意识到,虽然我们不符合100 % C99,但我们支持许多C99扩展。
尽管如此,为了保持一致,我们也应遵守这项公约。
请参阅下图了解更多证据。 评论真的很受欢迎!
Ty,
CY
团队,
我们的客户报告了以下信息:
———
我们进一步研究了NULL的问题,发现我们有一个误解。 在MISRA-2012标准(第102页,规则11-9)中,我们忽略了这一点:
以下示例符合要求,因为始终允许使用实现提供的宏NULL,即使它扩展到值为0的整型常量表达式。
#include <stddef.h>
extern void f( uint8_t *p );
/*符合NULL的任何符合定义,例如:
0
(void *) 0
((0))
((((1-1)))*/
F (NULL);
因此,我们同意允许stddef.h中NULL的CCS中的当前实现(即#define NULL 0),并且在MISRA-2012下可以接受目前编写的内容。
我们对制造混乱表示歉意。 请转递您的同事。
———
已关闭。
非常感谢,
CY