4个回答
展开全部
C和C++的多文件编程规则是有差别的。下面只描述C的(主要是语法要求不太一样,体现在编译层面)。
简单来说,有两个层面的问题:
1 编译问题
2 链接问题
1 编译问题:
就是你的代码要能够编译通过,编译主要是对语法的检查。例如:
1 A文件用B文件里的函数问题:在C语言中,A文件用B文件的函数,缺省不用做任何说明(缺省就是全局函数,注意不能是static函数,当然建议写上extern的引用说明)。
2 但是如果A文件要用B文件的结构体。那么必须把结构体放到头文件里,两个源文件都去include。
不罗列了,简单来说,代码要复合C的语法要求。
2 链接问题:
多个源文件可以编译成编译单元(编译做得事),并且把这些编译单元链接到一起形成最终的可执行文件或动态/静态库。
注:编译单元,.o文件。
举例:有a.c和b.c
以gcc编译来说:(不考虑其他编译和链接情况)
gcc -c a.c //生成a.o
gcc -c b.c //生成b.o
gcc -o hello a.o b.o // a.c和b.c里面一个必须有main函数。输出hello可执行程序。
如果是在集成开发环境,例如vc、devc++、codebloker等。就在软件相关工程属性里勾选上或增加源文件就行。(工具屏蔽了编译链接技术细节)
简单来说,有两个层面的问题:
1 编译问题
2 链接问题
1 编译问题:
就是你的代码要能够编译通过,编译主要是对语法的检查。例如:
1 A文件用B文件里的函数问题:在C语言中,A文件用B文件的函数,缺省不用做任何说明(缺省就是全局函数,注意不能是static函数,当然建议写上extern的引用说明)。
2 但是如果A文件要用B文件的结构体。那么必须把结构体放到头文件里,两个源文件都去include。
不罗列了,简单来说,代码要复合C的语法要求。
2 链接问题:
多个源文件可以编译成编译单元(编译做得事),并且把这些编译单元链接到一起形成最终的可执行文件或动态/静态库。
注:编译单元,.o文件。
举例:有a.c和b.c
以gcc编译来说:(不考虑其他编译和链接情况)
gcc -c a.c //生成a.o
gcc -c b.c //生成b.o
gcc -o hello a.o b.o // a.c和b.c里面一个必须有main函数。输出hello可执行程序。
如果是在集成开发环境,例如vc、devc++、codebloker等。就在软件相关工程属性里勾选上或增加源文件就行。(工具屏蔽了编译链接技术细节)
展开全部
用header作原型,两个C文件作实现,注意C文件里的函数要用extern
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编写到一起就行了
追问
不是有心来回答问题的就滚啦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询