[英]warning: comparison between pointer and integer in C
我收到警告
warning: comparison between pointer and integer
在包含来自下一段代码的if
的行上:
char cwd[1024];
if (getcwd(cwd, sizeof(cwd)) != (char*)NULL)
printf("%s\n",cwd);
else
error_print("error in pwd");
我需要如何以及如何解决?
您是否包括unistd.h? 如果不是,则会出现该错误,因为您的C编译器假定getcwd返回int。
解决办法? 包括unistd.h
您是否包含了必需的.h,以便编译器了解getcwd返回的内容?
c编译器的行为可能是假设每个未定义函数的返回值都是int。
在以下链接的返回类型部分中,getcwd失败时返回null。 因此,无需检查!= (char *)NULL
而是检查!= NULL
if (getcwd(cwd, sizeof(cwd)) != NULL)
用这一行修改
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.