gpt4 book ai didi

objective-c - 混合 Objective-c 和 C : How to use a C source file that lacks header file?

转载 作者:太空宇宙 更新时间:2023-11-04 07:40:37 27 4
gpt4 key购买 nike

我不想在我的 Objective-c 项目中使用一些 C 源代码,但源代码缺少头文件。我在构建时收到“函数的隐式声明” 警告,但是应用程序启动正常并且工作正常,直到我尝试调用其中一个 C 函数。现在它崩溃可能是我传递的参数出现问题的原因,我还没有进一步调查。但是:

有没有办法消除构建警告?

我走在正确的轨道上吗?这意味着即使没有头文件,C 源代码也可以使用。


一些背景:

我正在尝试在我的 Objective-c 项目 (iPhone) 中使用 GPL 动态 C 库。由于没有 C 经验,C 代码本身对我来说有点低级,无法有效使用。然而,C lib 还包含一些更高级别的示例程序,我可以理解它们在做什么,我认为(希望)也可以修改以满足我的需要。这个示例程序只是一个从 shell 脚本包装器中触发的源文件。没有头文件。

最佳答案

首先,C类是不存在的。

如果您的意思只是调用一个 C 函数,您可以在您的 Objective-C 代码中添加函数原型(prototype)。

假设您需要调用一个函数 f,它返回一个 int 并接受一个在您的 中定义的 char 参数.c 文件。

在您要调用该函数的 .m 文件中,添加以下行:

int f(char);

您将摆脱函数的隐式声明

或者,您可以将所有函数原型(prototype)编写在您自己的自定义 .h 文件中,以防您决定也需要在其他编译单元中使用这些函数。

关于objective-c - 混合 Objective-c 和 C : How to use a C source file that lacks header file?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4416697/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com