【问题标题】:Xcode error "Conflicting types" running a C code for a very simple functionXcode 错误“冲突类型”为一个非常简单的函数运行 C 代码
【发布时间】:2015-10-23 20:53:31
【问题描述】:

我正在尝试作为更大项目的一部分运行以下功能:

#include <memory.h>

void bzero(char *s, int n)
{
    memset (s, 0, n);
}

我收到以下错误: "'bzero' 的类型冲突"

我不明白这个问题,因为整个项目在 Linux 上运行良好。所以我实际上是在尝试将它转移到 Mac 上并使用 Xcode 创建可执行文件,但它甚至不会构建。

【问题讨论】:

    标签: c xcode executable memset


    【解决方案1】:

    在您的系统中已经有一个 bzero 函数(一个旧的 POSIX 函数,现在已被删除)具有不同的原型。以不同的方式命名您的函数,例如 my_bzero

    【讨论】:

    • 谢谢你!那行得通。也许您还可以帮助我解决我在项目的每个文件中遇到的另一个反复出现的构建错误。它不断给我消息“控制到达非无效函数的末尾”。我知道这意味着函数 MIGHT 到达末尾而不返回任何内容,或者至少意味着编译器认为它可能会发生。但是,我再次在 linux 上运行这个项目多年没有问题。有办法绕过吗?就像也许只是“返回 0”?
    • @GuyTal 你已经运行这个项目很多年了,你的编译器没有启用警告。是的,在收到此警告的函数末尾添加 return 0; 语句(假设函数返回算术类型值)。如果您想继续讨论这个其他主题,我建议您使用示例代码打开一个新问题。
    • 我坚持使用qsort
    【解决方案2】:

    bzero 是系统编程中使用的非标准 C 函数,这会导致您的系统发生冲突。它有原型

    void bzero(void *s, size_t n);
    

    【讨论】:

      猜你喜欢
      • 2021-06-16
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-10
      • 2013-04-24
      • 1970-01-01
      相关资源
      最近更新 更多