C 将字符串文字与返回字符指针的函数进行比较

标签 c string pointers cstring

为什么这段代码:

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/

相关文章:

c++ - 是否可以在运行时确定指针指向 C++ 类还是指向 Objective-C 类?

c - 为什么在 char[] 上调用 realloc 时出现错误?

c - 使用 fscanf 处理格式化文本文件时出现问题

c# - 字符串如何存储在对象数组中?

java - 在 Java 字符串中使用 split

检查双端队列实现中的无效指针

c++ - (C++) 将指向动态分配数组的指针传递给函数

c - 热补丁填充始终是 16 的倍数吗?

c++ - 梯度和内存

c++ - 将 double 字符串转换为 double vector 的最佳方法是什么?