C语言多文件编程.docx
《C语言多文件编程.docx》由会员分享,可在线阅读,更多相关《C语言多文件编程.docx(10页珍藏版)》请在冰豆网上搜索。
C语言多文件编程
C语言多文件编程
现在先写一个简单的程序。
学过C语言的你都能看懂。
在DEV-C++下编辑下面的程序:
[cpp]viewplaincopyprint?
1.#include
2.#include
3.void func1(); //函数声明
4.void func2(); //函数声明
5.void func3(); //函数声明
6.int main()
7.{
8. printf("hello world!
\n");
9. func1();
10. func2();
11. func3();
12. system("pause");
13. return 0;
14.}
[cpp]viewplaincopyprint?
1.//函数实现
2.void func1()
3.{
4. printf("我是函数1\n");
5. }
6.void func2()
7.{
8. printf("我是函数2\n");
9. }
10.void func3()
11.{
12. printf("我是函数3\n");
13. }
这个程序够简单吧!
运行结果如下:
这个程序所有的函数实现都在同一文件中,代码量很少,所以你能够看懂。
假如代码量很多时,你会发现这样的程序调试很费力。
为了体现C语言模块化的编程思想,我们可不可以将上面3个函数func1,func2和func3的实现单独放在一个文件中呢?
答案是肯定的。
初级方案:
3个函数的声明和实现放到一个文件中,再在main函数中调用。
在DEV-C++中编辑一个.h文件(这里命名为myfile.h)并保存。
(编辑完一定要保存哦!
)
[cpp]viewplaincopyprint?
1.//myfile.h
2.void func1()
3.{
4. printf("我是函数1\n");
5. }
6.void func2()
7.{
8. printf("我是函数2\n");
9. }
10.void func3()
11.{
12. printf("我是函数3\n");
13. }
再编辑我们的main.c文件。
(注意main.c文件要和我们的myfile.h文件放在同一目录下)
[cpp]viewplaincopyprint?
1.//main.c
2.#include
3.#include
4.#include"myfile.h" //注意,这里包含了我们自己写的头文件
5.int main()
6.{
7. printf("hello world!
\n");
8. func1();
9. func2();
10. func3();
11. system("pause");
12. return 0;
13.}
点击编译运行,结果如下:
和上面的结果一样吧!
实际上#icnlude机制很简单,就是把#include所包含的文件中的内容直接复制到#include所在的位置并替换#include语句,所以上面的程序和下面的程序是等价的。
[cpp]viewplaincopyprint?
1.//main.c
2.#include
3.#include
4.//函数实现
5.void func1()
6.{
7. printf("我是函数1\n");
8. }
9.void func2()
10.{
11. printf("我是函数2\n");
12. }
13.void func3()
14.{
15. printf("我是函数3\n");
16. }
17.int main()
18.{
19. printf("hello world!
\n");
20. func1();
21. func2();
22. func3();
23. system("pause");
24. return 0;
25.}
怎么样,简单吧!
不过模块化得编程提倡在.h文件中只包含一些声明,而我们却在myfile.h中放进了3个函数的实现。
一般提倡把函数的实现放到另一个.c或.cpp文件中。
所以我们可以修改如下(把原来的两个文件变成3个文件):
修改版:
mian.c文件:
放main函数
myfile.h:
3个函数的声明
myfile.c:
3个函数的实现
在dev-c++下建一个工程:
(一定要建工程)
建好工程后,我们可以看到,系统已经为我们在mian.c文件中编辑好了部分代码,同时工程1目录下也只有一个mian.c文件
这时我们再新建myfile.h文件
在弹出来的对话框中选择Yes
接下来重命名
在弹出的对话框中,输入myfile.h
接下来在myfile.h中输入3个函数的声明:
[cpp]viewplaincopyprint?
1.//这里只有3个函数的声明
2.void func1();
3.void func2();
4.void func3();
接下来安装上面的方法新建myfile.c文件
注意重命名时输入myfile.c,并在myfile.c中输入3个函数的实现
最后修改mian.c文件中的代码
最后点击编译运行,结果如下:
简单吧!
一个简单的多文件工程就产生了。
代码量很少的时候不需要这么做,这里仅仅是为了演示!
其实多文件编程还涉及到作用域、命名空间、程序的编译过程。
这里只是一个初级版本。
学无止境嘛呵呵