
举个简单的例子!你会容易理解的。
stackh
#ifndef STACK_H
#define STACK_H
extern void push(char);
extern char pop(void);
extern int is_empty(void);
#endif
你可以在其相应的stackc中对这些函数进行实现
stackc
#include "stackh"
void push(char)
{
/your code/
}
char pop(void)
{
/your code/
}
int is_empty(void)
{
/your code/
}
在mainc中你可以这样写
#include <stdioh>
#include "stackh"
int main()
{
push('a');
push('b');
push('c');
while(!is_empty())
putchar(pop());
putchar('\n');
return 0;
}
大致格式就是这样,在stackh(这个名字你可以随便定),在这个头文件中声明函数原形,在相应的stackc中进行函数定义与实现,主程序文件中包含这个头文件之后就可以调用stackh中声明的函数,编译后无错误即可执行,你可以试试。
兄弟我可是一个字一个字的打上去的,不是粘贴的。
1简单程序(单模块程序)的编译
文件file1c
#include <stdioh>
int main()
{
printf("hello\n");
return 0;
}
文件file1cpp
#include <iostream>
using std::cout;
using std::endl;
int main()
{
cout<<"hello"<<endl;
return 0;
}
[xiaochen@freeware ~]$ gcc file1c -o file1
[xiaochen@freeware ~]$ g++ file1cpp -o file1_cpp
[xiaochen@freeware ~]$ /file1
hello
[xiaochen@freeware ~]$ /file1_cpp
hello
对于只有一个文件的c/c++用GCC/G++来编译很容易
对于多个文件即多个模块的程序来说,其实也并不是很难
2多模块程序的编译
下面举个例子:
文件firsth
int first();
文件firstc
#include <stdioh>
#include "firsth"
first()
{
printf("this is just a test!");
return 0;
}
文件secondh
int mymax(int,int);
文件secondc
mymax(x,y)
{
if(x>y)
return x;
else
return y;
}
文件mainc
#include "firsth"
#include "secondh"
#include <stdioh>
int main()
{
int a,b;
a=10;
b=20;
first();
printf("%d\n",mymax(a,b));
return 0;
}
下面是在终端中输入的内容
[xiaochen@freeware ~]$ gcc -c firstc
[xiaochen@freeware ~]$ gcc -c secondc
[xiaochen@freeware ~]$ gcc -c mainc
[xiaochen@freeware ~]$ gcc firsto secondo maino -o main
[xiaochen@freeware ~]$ /main
this is just a test!20
当然啦也可以这么输入
[xiaochen@freeware ~]$ gcc firstc secondc mainc -o main
这个取决于编译环境所采用的连接方式。很多像样一点的采用动态连接方式的编译环境都会记录每个源文件的修改情况,未修改的话直接调用先前的编译结果。
这种情况下烧写程序是没有任何影响的。
Baidu makes me sick!!!
将所有子程序的声明放在头文件h里,对应的定义放在同名的c文件里,主程序的文件和这两个文件都放在同一目录下,举例说明
void function1(void); //声明
void function1(void);//声明
main()
{
function1();
function2();
}
void function1(void)
{
定义
}
void function2(void)
{
定义
}
/
你想要的效果如下/
#include "my_functionsh"
main()
{
function1();
function2();
}
/
将方程的声明放在文件my_functionsh里/
void function1(void); //声明
void function1(void);//声明
/
将方程的定义放在文件my_functionsc里/
void function1(void)
{
定义
}
void function2(void)
{
定义
}
以上就是关于C语言中,如何用多个文件编写程序全部的内容,包括:C语言中,如何用多个文件编写程序、g++编译多个文件、多文件程序调试时,对没有修改的文件是否还要再次编译。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)