如何把一个复杂的C语言源代码分成几个文件,然后在dev c++上进行多文件编译? 20
8个回答
展开全部
假设我们要更改的源代码如下:
我们的任务是把xx写成一个头文件,将ff写成一个头文件。
头文件基本格式:
#ifndef _xx_h_
#define _xx_h_
//do something
#endif
第一步:首先将每个头文件写好,如下:
注意在源文件使用头文件时要用“”而不能用<>,即:
#include "ff.h" 而不是 #include <ff.h>
第二步,将源代码写好后的运行结果:
这就可以了。程序能运行出结果了。
需要注意的一点:文件要在同一路径。如下图:
必须这样做!否则编译器将找不到头文件,会报错,会出现:
//我引用了一个未定义的头文件 ErrorTest.h:
即“No such file or directory” 就是没有文件或者路径。说明你的路径写错了,在编程时务必要注意一下。
展开全部
首先备份原来的文件,下面步骤正式开始:
(这类的工具我不了解有没有,但自己来一定会有收获的)
1. 先在代码中找所有函数的定义,以及所有全局变量的定义,前面加上extern。
比如:我实现了一个函数:int a(){return 0;},那么它的定义就是int a();//extern省略
或:我声明了一个全局变量:int b=0; ,那么在头文件中他就是extern int b;
2. 创建一个头文件,里面写好收集好的定义,这个名字我建议用defines.h。
3. 把原来文件按功能或一定类别分开,写入各个.c文件中,记得用名字区分。
4. 各个.c文件的开始都加上: #include "你给头文件起的名字如defines.h"
5. 编译,可能会有函数未声明的警告或变量未声明的错误,在头文件里加上就可以了。
可能有人会说为什么要拆,拆开杂乱无章的多麻烦。
拆开对于IDE和编译器来说的负担咱不用管,拆开时对人的负担可能很大,
但拆开后人是会轻松很多的,分块对于编程效率提高也是很重要的。尤其是方便优化调试
(这类的工具我不了解有没有,但自己来一定会有收获的)
1. 先在代码中找所有函数的定义,以及所有全局变量的定义,前面加上extern。
比如:我实现了一个函数:int a(){return 0;},那么它的定义就是int a();//extern省略
或:我声明了一个全局变量:int b=0; ,那么在头文件中他就是extern int b;
2. 创建一个头文件,里面写好收集好的定义,这个名字我建议用defines.h。
3. 把原来文件按功能或一定类别分开,写入各个.c文件中,记得用名字区分。
4. 各个.c文件的开始都加上: #include "你给头文件起的名字如defines.h"
5. 编译,可能会有函数未声明的警告或变量未声明的错误,在头文件里加上就可以了。
可能有人会说为什么要拆,拆开杂乱无章的多麻烦。
拆开对于IDE和编译器来说的负担咱不用管,拆开时对人的负担可能很大,
但拆开后人是会轻松很多的,分块对于编程效率提高也是很重要的。尤其是方便优化调试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Baidu makes me sick!!!
将所有子程序的声明放在头文件.h里,对应的定义放在同名的.c文件里,主程序的文件和这两个文件都放在同一目录下,举例说明
void function1(void); //声明
void function1(void);//声明
main()
{ .................
function1();
function2();
.................
}
void function1(void)
{
..................定义
}
void function2(void)
{
..................定义
}
/************************************************
你想要的效果如下*/
#include "my_functions.h"
main()
{ .................
function1();
function2();
.................
}
/*************************************
将方程的声明放在文件my_functions.h里*/
void function1(void); //声明
void function1(void);//声明
/*************************************
将方程的定义放在文件my_functions.c里*/
void function1(void)
{
..................定义
}
void function2(void)
{
..................定义
}
将所有子程序的声明放在头文件.h里,对应的定义放在同名的.c文件里,主程序的文件和这两个文件都放在同一目录下,举例说明
void function1(void); //声明
void function1(void);//声明
main()
{ .................
function1();
function2();
.................
}
void function1(void)
{
..................定义
}
void function2(void)
{
..................定义
}
/************************************************
你想要的效果如下*/
#include "my_functions.h"
main()
{ .................
function1();
function2();
.................
}
/*************************************
将方程的声明放在文件my_functions.h里*/
void function1(void); //声明
void function1(void);//声明
/*************************************
将方程的定义放在文件my_functions.c里*/
void function1(void)
{
..................定义
}
void function2(void)
{
..................定义
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把C语言源代码,按功能划分模块;
每个模块一个c文件,由一系列函数完成;
(正规的做法,还需要添加对应.h文件,用于声明c文件里面的函数,结构体等等等等)
然后把所有c文件都加入到dev c++的项目里面,编译就可以了
每个模块一个c文件,由一系列函数完成;
(正规的做法,还需要添加对应.h文件,用于声明c文件里面的函数,结构体等等等等)
然后把所有c文件都加入到dev c++的项目里面,编译就可以了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将功能上可以归结一个集合的函数写到同一个.c文件,其他函数若要用到该.c文件内的函数,只需在头文件中include包含就可以了,可以参考面向对象编程。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询