NULL不能识别?

ItWorker 2003-07-25 04:30:22
环境:linux下的C程序
某函数中想判断指针是否为空,遂用了NULL这个冬冬。
可是编译时没有通过。
请问该包含什么头文件?

或者可以直接写成这样?
if ( p == (void*)(0) )
{
return;
}
...全文
357 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jumpcolor 2003-07-27
  • 打赏
  • 举报
回复
在stdio.h中有定义!
snowman_pc 2003-07-27
  • 打赏
  • 举报
回复
#define NULL=0

这个在一个头文件里定义,

你可以用0代替
jincai 2003-07-27
  • 打赏
  • 举报
回复
if ( p == (void*)(0) )
{
return;
}

如jumpcolor(跳动的色彩) 所说,NULL在stdio.h中有定义,

原形是如你所用:(void *)0

但我在用时老出问题,所以改为#define NULL 0

编译可以通过!

希望高手讲讲为什么!
tiger999 2003-07-27
  • 打赏
  • 举报
回复
0 用在比较指针时就是NULL
chinazcw 2003-07-25
  • 打赏
  • 举报
回复
NULL在C中的定义,应该就是0.
写成(void *)(0),简直就是花拳绣脚,毫无实用之功
playboyxp 2003-07-25
  • 打赏
  • 举报
回复
NULL=0应该在stdio.h中有定义
如果没有可以这样定义#define NULL 0
turbocamel 2003-07-25
  • 打赏
  • 举报
回复
晕!if(!p){}
happycock 2003-07-25
  • 打赏
  • 举报
回复
现实情况是,NULL就是0
hmilydj 2003-07-25
  • 打赏
  • 举报
回复

NULL和0是两回事,怎么能等同呢?NULL表示空,但0不等于空
liao2001 2003-07-25
  • 打赏
  • 举报
回复
不用去考虑包含哪个头文件,加入预编译条件就行了,比如:

#ifndef NULL
#define NULL ((void *)0)
#endif
pushser 2003-07-25
  • 打赏
  • 举报
回复
NULL基本上就等于0了
HostOOP 2003-07-25
  • 打赏
  • 举报
回复
其实NULL就是0,你写成
if ( p == 0 )
{
return;
}
都每问题。

#include <stdlib.h>,NULL就有值了。
在Linux下,NULL是在linux/stddef.h中定义的,但<stdlib.h>经过几次“include”,就把NULL “include”进来了:

linux/stddef.h:#define NULL 0
luohualiushui 2003-07-25
  • 打赏
  • 举报
回复
linux下!!………………汗

69,368

社区成员

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

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