您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页C语言多文件编程

C语言多文件编程

来源:意榕旅游网


C语言多文件编程

现在先写一个简单的程序。学过C语言的你都能看懂。

在DEV-C++下编辑下面的程序:

[cpp] view plaincopyprint?

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. } #include#includevoid func1(); //函数声明void func2(); //函数声明void func3(); //函数声明int main() [cpp] view plaincopyprint? 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. } //函数实现void func1() { printf(\"我是函数1\\n\"); }void func2() 这个程序够简单吧!运行结果如下:

这个程序所有的函数实现都在同一文件中,代码量很少,所以你能够看懂。假如代码量很多时,你会发现这样的程序调试很费力。

为了体现C语言模块化的编程思想,我们可不可以将上面3个函数func1,func2和func3的实现单独放在一个文件中呢?答案是肯定的。

初级方案:3个函数的声明和实现放到一个文件中,再在main函数中调用。

在DEV-C++中编辑一个.h文件(这里命名为myfile.h)并保存。(编辑完一定要保存哦!)

[cpp] view plaincopyprint?

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. } //myfile.hvoid func1(){ printf(\"我是函数1\\n\"); }void func2() 再编辑我们的main.c文件。(注意main.c文件要和我们的myfile.h文件放在同一目录下) [cpp] view plaincopyprint?

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. }

//main.c #include#include#include\"myfile.h\" //注意,这里包int main(){点击编译运行,结果如下: 和上面的结果一样吧! 实际上#icnlude机制很简单,就是把#include所包含的文件中的内容直接复制到#include所在的位置并替换#include语句,所以上面的程序和下面的程序是等价的。 [cpp] view plaincopyprint? 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. } //main.c #include#include//函数实现 void func1(){ 怎么样,简单吧! 不过模块化得编程提倡在.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] view plaincopyprint? 1. //这里只有3个函数的声明 2. void func1(); 3. void func2(); 4. void func3(); //这里只有3个函数的声明 void func1(); void func2(); void func3();

接下来安装上面的方法新建myfile.c文件

注意重命名时输入myfile.c,并在myfile.c中输入3个函数的实现

最后修改mian.c文件中的代码

最后点击编译运行,结果如下:

简单吧!一个简单的多文件工程就产生了。

代码量很少的时候不需要这么做,这里仅仅是为了演示!

其实多文件编程还涉及到作用域、命名空间、程序的编译过程。这里只是一个初级版本。

学无止境嘛呵呵

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务