Xcode 错误“冲突类型”为一个非常简单的函数运行 C 代码

Posted

技术标签:

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

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

#include <memory.h>

void bzero(char *s, int n)

    memset (s, 0, n);

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

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

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

void bzero(void *s, size_t n);

【讨论】:

以上是关于Xcode 错误“冲突类型”为一个非常简单的函数运行 C 代码的主要内容,如果未能解决你的问题,请参考以下文章

c中用户定义函数的冲突类型

函数的参数

如何解决 C 中的冲突类型错误?

在 Xcode 中接收“控制到达非无效函数的末尾”错误消息

将 iOS UIAutomation 作为操作后构建脚本运行会作为 posix spawn 错误返回

具有覆盖函数的嵌套类的编译器错误 - Swift Xcode6