【发布时间】:2018-03-28 18:14:24
【问题描述】:
我最近了解到sizeof 不是一个函数,实际上是在编译时进行评估的。
但我仍然无法弄清楚sizeof(*NULL) 是如何等于 1 的。
编辑:我在这里专门谈论 gcc。
【问题讨论】:
-
@Katianie -
sizeof(NULL)和sizeof(*NULL)是非常不同的东西。 -
@Katianie 没错,我已经阅读了那篇文章,但找不到 sizeof(*NULL) 的参考资料
-
我认为
sizeof(void)是 GNU 特定的扩展 -
@UtkarshAgarwal 但它产生的输出为 1 这是一个违反 6.2.5 类型的 GCCism,the C standard 第 19 段:“The
void类型包含一组空值;它是不完整的对象类型,无法完成。"