• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-13 16:22:15 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我想在 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',它在我调用它后崩溃。



Best Answer-推荐答案


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++ - 如何在 Objective-C 项目中合并 C++ 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4320940/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap