1. 程式人生 > >菜鳥攻略——C語言多檔案程式設計初探(一)

菜鳥攻略——C語言多檔案程式設計初探(一)

      發現有很多童鞋學了一年半載的C語言還不會多檔案程式設計。很多人到現在一個程式都只有一個原始檔(main.cpp或mian.c)。甚至連我的室友大飛哥(我們都大二下學期了)昨天也問我怎麼做。其實C語言的多檔案並不神祕。哥今天姑且裝B一回,說說怎麼多檔案程式設計,順便自己也小結一下。

說明:我用的程式設計工具為devc++,vc6.0也類似。不過vc.6.0會強迫你建工程,不太方便。

跟著我一步一步來,很簡單的哦!

現在先寫一個簡單的程式。保證學過C語言的你都能看懂。

在DEV-C++下編輯下面的程式:

#include<stdio.h>
#include<stdlib.h>
void func1();     //函式宣告
void func2();     //函式宣告
void func3();     //函式宣告
int main()
{
    printf("hello world!\n");
    func1();
    func2();
    func3(); 
    system("pause");
    return 0;
} 
//函式實現
void func1() 
{
     printf("我是函式1\n");
 }
void func2()
{
     printf("我是函式2\n"); 
 } 
void func3()
{
     printf("我是函式3\n"); 
     } 

這個程式夠簡單吧!執行結果如下:


        這個程式所有的函式實現都在同一檔案中,程式碼量很少,所以你能夠看懂。假如程式碼量很多時,你會發現這樣的程式除錯很費力。

為了體現C語言模組化的程式設計思想,我們可不可以將上面3個函式func1,func2和func3的實現單獨放在一個檔案中呢?答案是肯定的。

初級方案

:3個函式的宣告和實現放到一個檔案中,再在main函式中呼叫。

在DEV-C++中編輯一個.h檔案(這裡命名為myfile.h)並儲存。(編輯完一定要儲存哦!)

//myfile.h
void func1()
{
     printf("我是函式1\n");
 }
void func2()
{
     printf("我是函式2\n"); 
 } 
void func3()
{
     printf("我是函式3\n"); 
     } 

再編輯我們的main.c檔案。(注意main.c檔案要和我們的myfile.h檔案放在同一目錄下)
//main.c 
#include<stdio.h>
#include<stdlib.h>
#include"myfile.h" //注意,這裡包含了我們自己寫的標頭檔案 
int main()
{
    printf("hello world!\n");
    func1();
    func2();
    func3(); 
    system("pause");
    return 0;
} 
點選編譯執行,結果如下:

   和上面的結果一樣吧!

實際上#icnlude機制很簡單,就是把#include所包含的檔案中的內容直接複製到#include所在的位置並替換#include語句,所以上面的程式和下面的程式是等價的。

//main.c 
#include<stdio.h>
#include<stdlib.h>
//函式實現 
void func1()
{
     printf("我是函式1\n");
 }
void func2()
{
     printf("我是函式2\n"); 
 } 
void func3()
{
     printf("我是函式3\n"); 
     } 
int main()
{
    printf("hello world!\n");
    func1();
    func2();
    func3(); 
    system("pause");
    return 0;
} 

怎麼樣,簡單吧!

不過模組化得程式設計提倡在.h檔案中只包含一些宣告,而我們卻在myfile.h中放進了3個函式的實現。一般提倡把函式的實現放到另一個.c或.cpp檔案中。

所以我們可以修改如下(把原來的兩個檔案變成3個檔案):

修改版

mian.c檔案:放main函式

myfile.h:3個函式的宣告

myfile.c:3個函式的實現

在dev-c++下建一個工程:(一定要建工程)


建立工程時選擇工程型別時,選擇第二個“Console Application”

建好工程後,我們可以看到,系統已經為我們在mian.c檔案中編輯好了部分程式碼,同時工程1目錄下也只有一個mian.c檔案

這時我們再新建myfile.h檔案

在彈出來的對話方塊中選擇Yes


接下來重新命名


在彈出的對話方塊中,輸入myfile.h


接下來在myfile.h中輸入3個函式的宣告:

//這裡只有3個函式的宣告 
void func1(); 
void func2(); 
void func3(); 


接下來按照上面的方法新建myfile.c檔案

注意重新命名時輸入myfile.c,並在myfile.c中輸入3個函式的實現


最後修改mian.c檔案中的程式碼


最後點選編譯執行,結果如下:

簡單吧!一個簡單的多檔案工程就產生了。

程式碼量很少的時候不需要這麼做,這裡僅僅是為了演示!

其實多檔案程式設計還涉及到作用域、名稱空間、程式的編譯過程。這裡只是一個初級版本。下回還有講解!

水平有限,歡迎交流!

-------------------------2016.11.24 新增----------------------

歡迎閱讀!!!