gcc编译两个文件的问题
一个是函数文件b.c,一个是主文件a.c,用了#include包含了函数b.c文件,用gcc-oa.outa.cb.c出错,不编译b时候,是对的,难道这中情况下,只需要编...
一个是函数文件b.c,一个是主文件a.c,用了#include包含了函数b.c文件,用gcc -o a.out a.c b.c出错,不编译b时候,是对的,难道这中情况下,只需要编译主文件嘛?如果不用#include包含函数文件的话,那又会怎么样呢?
展开
2个回答
展开全部
是的,这种情况下,你只需要编译主文件就可以了。
#include 的作用相当于是将包含的文件的内容直接粘贴的#include的位置,即将多个文件连在一起后进行解析并编译。
如果不用#include包含函数文件,编译时你就需要用 gcc -o a.out a.c b.c进行编译了。
区别在于,如果在a文件中,定义一个static变量或者函数,如果使用#include方式,在b.c里面是可以引用的,因为#include会把a和b的内容连接在一起后进行编译;而如果不使用#include,在b.c中就访问不到a.c中的static变量或者函数。
另外,虽然可以运行,但编程中最好养成良好的习惯,不要在c文件中#include其他的c文件。
希望对你有用。
#include 的作用相当于是将包含的文件的内容直接粘贴的#include的位置,即将多个文件连在一起后进行解析并编译。
如果不用#include包含函数文件,编译时你就需要用 gcc -o a.out a.c b.c进行编译了。
区别在于,如果在a文件中,定义一个static变量或者函数,如果使用#include方式,在b.c里面是可以引用的,因为#include会把a和b的内容连接在一起后进行编译;而如果不使用#include,在b.c中就访问不到a.c中的static变量或者函数。
另外,虽然可以运行,但编程中最好养成良好的习惯,不要在c文件中#include其他的c文件。
希望对你有用。
追问
还有好多问题要问,但是还要自己去尝试,从你写的这段话中,可以看出你是个高手。有空会多向你求教的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询