如果將所有的代碼都寫到一個文件中,當對於小項目來說不會有什麼問題,但是當它一個很大的工程的時候,如果將所有代碼都寫到一個文件中,不但開發起來很困難,維護更是頭疼,所以我們應該將代碼按不同的功能分別建立相應的代碼文件,下面我們將program.c的代碼分成多個文件
1 #include <stdio.h>
2
3 int main(){
4 int n=10;
5 int m=5;
6 int result;
7 result=add(n,m);
8 printf("n+m=%i\n",result);
9 result=sub(n,m);
10 printf("n-m=%i\n",result);
11 return 0;
12 }
13
14 int add(int n,int m){
15 return n+m;
16 }
17
18 int sub(int n,int m){
19 return n-m;
20 }
首先,我們將功能代碼放到另一個文件cal.c文件中
1 #include "cal.h"
2
3 int add(int n,int m){
4 return n+m;
5 }
6
7 int sub(int n,int m){
8 return n-m;
9 }
然後將函數聲明放在另一個文件cal.h頭文件中
int add(int n,int m); int sub(int n,int m);
現在我們再來看主程序中該怎麼去調用這些方法
1 #include <stdio.h>
2 #include "cal.h"
3
4 int main(){
5 int n=10;
6 int m=5;
7 int result;
8 result=add(n,m);
9 printf("n+m=%i\n",result);
10 result=sub(n,m);
11 printf("n-m=%i\n",result);
12 return 0;
13 }
只需在主程序文件開頭處引用"cal.h"頭文件就行,注意這裡的cal.h頭文件是用雙引號而不是<>括號;
通過雙引號引用的頭文件是程序的相對路徑,而通過尖括號引用的是程序的絕對路徑
最後,我們來看看該如何編譯多個文件的程序,其實和和編譯單個文件沒有多大區別,就是在gcc後面逐個添加c文件