struct XXXX *x = (struct XXXX *)0 和 struct XXXX *x = NULL 有什么不同?(内空)

superct 2003-08-26 03:36:38
struct XXXX *x = (struct XXXX *)0 和 struct XXXX *x = NULL 有什么不同
...全文
121 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
superct 2003-08-26
  • 打赏
  • 举报
回复
谢谢
sandrowjw 2003-08-26
  • 打赏
  • 举报
回复
#define NULL (void*)0
一般来说是这样的,印象中在c++下面从void*到任意指针的隐式转换应该是不允许的(c是允许的),但是大部分编译器好像都不报错。

不过NULL不一定就是以以上形式定义的,只要能够让系统抛出一个access violation异常,怎么定义没有关系。

还是推荐用0。
dddd8888 2003-08-26
  • 打赏
  • 举报
回复
在这里没有区别
prettynacl 2003-08-26
  • 打赏
  • 举报
回复
NULL 有时候被定义为-1
sevecol 2003-08-26
  • 打赏
  • 举报
回复
只要NULL和0没有区别的话,就没有区别。
晨星 2003-08-26
  • 打赏
  • 举报
回复
没有什么效果上的区别,前者的写法更严谨一些,因为0比较特殊,既是指针常量,又是整形常量。

不过,(听人说的),并不是所有开发工具提供的相关库中都把NULL定义为0。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧