警告:C中指针和整数之间的比较

警告:C中指针和整数之间的比较,c,pointers,warnings,getcwd,C,Pointers,Warnings,Getcwd,我得到一个警告 警告:指针和整数之间的比较 在包含下一段代码的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您是否包括unistd.h?如

我得到一个警告

警告:指针和整数之间的比较

在包含下一段代码的
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

您是否包括unistd.h?如果不是,则会出现错误,因为C编译器假定getcwd返回int


修复?在下面链接的返回类型部分包含unistd.h

,getcwd在失败时返回null。因此,不必检查
!=(char*)NULL
只需检查
!=空


在下面链接的“返回类型”部分,getcwd在失败时返回null。因此,不必检查
!=(char*)NULL
只需检查
!=空


用这一行修改
if(getcwd(cwd,sizeof(cwd))!=NULL)
用这一行修改
if(getcwd(cwd,sizeof(cwd))!=NULL)
是否包含了必要的.h以便编译器理解getcwd返回的内容


c编译器的行为可能是假设每个未定义函数都有一个int返回值。

是否包含了必要的.h,以便编译器理解getcwd返回的内容

c编译器的行为可能是假定每个未定义函数都有一个int返回值。

的原型是

确保包含
,否则返回类型将默认为
int

在这里,即使是Ideone也给出了它的

is的原型

确保包含
,否则返回类型将默认为
int


在这里,即使是Ideone也给出了它的

良好实践,但它无法解决问题。良好实践,但它无法解决问题。良好实践,但它无法解决问题。良好实践,但它无法解决问题。我没有收到任何错误,只是警告而已,stdio.h或stdlib.h中是否有原型def--------------------int-getcwd(char*buf,size\u t size);我没有收到任何错误,只是警告一下,stdio.h或stdlib.h中是否有任何原型定义--------------------int getcwd(char*buf,size\u t size);
char *getcwd(char *buf, size_t size);