为什么这段代码:
strcmp(myfunction(0), "OK");
其中 myfunction 的定义如下:
char *myfunction(int p)
{
if (p == 0)
{
return("OK");
}
}
报错如下:
warning: passing argument 1 of 'strcmp' makes pointer from integer without a cast
最佳答案
因为编译器在调用时不知道 myfunction()
的定义。
然后编译器假定它返回一个 int ...并给出该消息。
解决方案:在调用函数之前提供函数的原型(prototype)(或其定义,充当原型(prototype))。
关于C 将字符串文字与返回字符指针的函数进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16468666/