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

标签 c++ objective-c ios

我想在 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以消除错误。现在它编译了,我可以调用它,但编译器会警告我:警告:函数“mainFunction”的隐式声明并且在我调用它后它崩溃了。

最佳答案

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/

相关文章:

C++ - 在树作业 : error: expected constructor, 析构函数上编译错误,或在 ‘*’ 标记之前进行类型转换

c++ - 如何使用rapidjson合并两个json文件

iphone - 内部图像需要多种分辨率?

ios - 如何使用 Subliminal 模拟 TableView 或 Collection View 滚动?

iOS,TableViewCell,动态更新单元格的高度

c++ - 将 UML 组件映射到 C++ 的最佳方法是什么?

c++ - %.*s 在 printf 上代表什么?

ios - 当后台时间到期时,为什么不是所有后台线程都被挂起?

ios - 无法在 CorePlot 中实现像环一样的饼图

iphone - Restkit内存不足警告