小编use*_*058的帖子

((void*)0)是否为空指针常量?

我正在阅读这篇博客文章,在Null指针常量和括号表达式部分下,作者参考了ISO C标准中的第6.3.2.3节和第6.5.1节,并说:

没有说括号空指针常量是一个空指针常量.

严格来说,这意味着,这(void*)0是一个空指针常量,但((void*)0)不是.

然后:

我敢肯定,大多数C实现根本治疗括号空指针常数作为空指针常数,并定义NULL无论是作为0,((void*)0)或以其他的方式.

两个参考部分说:

§6.3.2.3

值为0的整型常量表达式或类型为void*的表达式称为空指针常量.

§6.5.1

带括号的表达式是主表达式.它的类型和值与未表示的表达式相同.如果未表示的表达式分别是左值,函数指示符或空表达式,则它是左值,函数指示符或void表达式.

粗体句是否与提交人声称((void*)0)不是空指针常量相矛盾?

c language-lawyer

35
推荐指数
2
解决办法
3万
查看次数

C标准是否有缺陷报告的网站?

在我之前的问题中,讨论似乎意味着C标准可能存在缺陷,最重要的回答者的最后一句话进一步暗示:

该标准的作者只是忽略了这样说.

我知道C++有一个在线网站,您可以在其中搜索缺陷报告,即这里是我对空指针常量的搜索,但C标准是否有相似之处?

c standards language-lawyer

23
推荐指数
2
解决办法
746
查看次数

标签 统计

c ×2

language-lawyer ×2

standards ×1