gpt4 book ai didi

c++ - 如何将 C++ 代码合并到 Objective-C 项目中?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:34:42 26 4
gpt4 key购买 nike

我想在 Xcode 项目中使用一些 C++ 代码,但我对这两种语言的理解都不够好,还不知道如何继续。我已经在 Obj-C 工作了一段时间并且在应用商店中有一个应用程序,但仍在学习......

我要使用的代码有两个同名文件,扩展名为.h.c。我认为它们对应于 Obj-C 中的 .h.m 文件,但它们缺少 @interface@implementation 结构我很熟悉。还有一个 main.c,我不知道如何处理。它看起来像是主程序 - 我是否应该尝试将其代码拉出到我的主要 viewController 中?

也许是一个好的教程的链接?也许这个问题太模糊了......

仅供引用 - 我想使用的代码用于计算日出和日落时间,位于:http://www.risacher.org/sunwait/

谢谢!

编辑:

感谢您的建议 - 在我得到这个之前我可能需要做更多的学习。但我取得了一些进步......

main.c 中(有一个叫那个的文件似乎很奇怪......)有一个函数(?)是这样的:

int mainFunction(int argc, char *argv[])
{
// a bunch of function-y stuff
}

它被称为 main 但我将其更改为 mainFunction 以消除错误。现在它编译了,我可以调用它了,但是编译器这样警告我:warning: implicit declaration of function 'mainFunction' and it crashes after I call it.

最佳答案

Now it compiles and I can call it but the compiler warns me thus: warning: implicit declaration of function 'mainFunction' and it crashes after I call it.

这是因为,在您使用该函数的地方,您没有前向声明或包含该函数的声明。在您的 Objective-C 代码中,您应该添加以下代码:

int mainFunction(int argc, char *argv[]);

另请注意,“.c”文件扩展名是 C 代码,而不是 C++。由于 Objective-C 是 C 的超集,您可以轻松地将扩展名更改为“.m”,并且您仍然会遇到相同的错误,因为您需要此前向声明。我强烈建议您在进入 Objective-C 世界之前熟悉 C 和 C++ 代码。如果你想放弃学习 C++,那么至少,你应该在进入 Objective-C 之前加强你的 C 知识,因为 C 基础知识适用。

关于c++ - 如何将 C++ 代码合并到 Objective-C 项目中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4320940/

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