gpt4 book ai didi

c - 在 32 位 C 编译器上,sizeof(*NULL) 如何等于 1?

转载 作者:太空狗 更新时间:2023-10-29 14:50:54 26 4
gpt4 key购买 nike

我最近了解到 sizeof 不是一个函数,它实际上是在编译时计算的。

但是我还是没弄明白sizeof(*NULL)是怎么等于1的。

编辑:我在这里专门谈论 gcc。

最佳答案

这取决于编译器和标准库。对于 GCC 和 glibc,NULL 被定义为 (void*)0 并且 GCC 有 an extension允许使用 sizeof(void) == 1void 指针进行指针运算。如果没有此扩展,编译器会产生错误。

标准库也可以将 NULL 定义为 0。在这种情况下,sizeof(*NULL) 也是非法的。

关于c - 在 32 位 C 编译器上,sizeof(*NULL) 如何等于 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49541459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com