A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

a946608523

中级黑马

  • 黑马币:84

  • 帖子:119

  • 精华:0

© a946608523 中级黑马   /  2016-8-6 15:07  /  2938 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

6黑马币
C和obj-c 如何混用

最佳答案

查看完整内容

对于C与obj-c我分三个点说下 1. obj-c的编译器处理后缀为m的文件时,可以识别obj-c和c的代码,处理mm文件可以识别obj-c,c,c++代码,但cpp文件必须只能用c/c++代码,而且cpp文件include的头文件中,也不能出现 obj-c的代码,因为cpp只是cpp 2. 在mm文件中混用cpp直接使用即可,所以obj-c混cpp不是问题 3. 在cpp中混用obj-c其实就是使用obj-c编写的模块是我们想要的。 如果模块以类实现,那么要按照cpp class的标准写类的定 ...

2 个回复

倒序浏览
对于C与obj-c我分三个点说下

1. obj-c的编译器处理后缀为m的文件时,可以识别obj-c和c的代码,处理mm文件可以识别obj-c,c,c++代码,但cpp文件必须只能用c/c++代码,而且cpp文件include的头文件中,也不能出现 obj-c的代码,因为cpp只是cpp
2. 在mm文件中混用cpp直接使用即可,所以obj-c混cpp不是问题

3. 在cpp中混用obj-c其实就是使用obj-c编写的模块是我们想要的。
      如果模块以类实现,那么要按照cpp class的标准写类的定义,头文件中不能出现obj-c的
东西,包括#import cocoa的。实现文件中,即类的实现代码中可以使用obj-c的东西,可
以import,只是后 缀是mm。
     如果模块以函数实现,那么头文件要按c的格式声明函数,实现文件中,c++函数内部可以
用obj-c,但后缀还是mm或m。

最后总结一下:
只要cpp文件和cpp include的文件中不包含obj-c的东西就可以用了,cpp混用obj-c
的关键是使用接口,而不能直接使用 实现代 码,实际上cpp混用的是obj-c编译后的o文
件,这个东西其实是有差别的,所以可以用。obj-c的编译器支持cpp

回复 使用道具 举报
好的明白了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马