2、.m文件和.c文件混用开发
(1)编写3个文件
one.m 代码如下:
1 //将two.h头文件拷贝至此
2 #import "two.h"
3 int main(int argc, const char * argv[])
4 {
5 //调用test函数
6 test();
7 return 0;
8 }
two.h 代码如下:
1 //test函数的声明
2 void test();
two.c 代码如下:
1 //因为使用了printf函数,所以将stdio.h拷贝至此
2 #include <stdio.h>
3 //test函数的定义(实现)
4 void test()
5 {
6 printf("调用了test函数
");
7 }
(2)终端指令
- 编译:cc –c one.m two.c
- 链接:cc one.o two.o
这里必须同时链接 one.o 和 two.o文件
由于没有引入Foundation框架,这里不需要加上-framework Foundation
- 运行:./a.out
(3)程序分析:
- two.h文件中对test函数进行了声明(声明一般写在.h头文件中)。
- two.c文件中对test函数进行了定义。
- cc one.o two.o
两个.o文件必须同时进行链接,因为one.m缺少test函数的定义,two.c缺少main函数的定义
由于没有引入Foundation框架,这里不需要加上-framework Foundation
- one.m引入了two.h头文件(即拥有了test函数的声明),故可调用test函数。