5.4 NULL是什么,它是怎么定义的?

作为一种风格, 很多人不愿意在程序中到处出现未加修饰的0。

因此定义了预处理宏NULL (在<stdio.h> 和其它几个头文件中) 为空指针常数, 通常是0 或者((void *)0) (参见问题5.6)。

希望区别整数0 和空指针0 的人可以在需要空指针的地方使用NULL。

使用NULL 只是一种风格习惯;

预处理器把所有的NULL 都还原回0, 而编译还是依照上文的描述处理指针上下文的0。

特别是, 在函数调用的参数里, NULL之前(正如在0 之前) 的类型转换还是需要。

问题5.2 下的表格对0 和NULL 都有效(带修饰的NULL 和带修饰的0 完全等价)。

NULL 只能用作指针常数; 参见问题5.7。

永不止步步 发表于01-14 10:17 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:363791个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号