在實作C語言子產品化程式設計時,通常會用到*.h式的頭檔案的編寫,在此記錄下頭檔案的基本寫法。
通常我們寫C程式時,都會直接使用這樣的語句“#include <stdlib.h>”。這便是我們通常說的頭檔案。頭檔案通常用作函數聲明,變量聲明,常數定義,宏的定義等等。
頭檔案基本格式:
#ifndef HEAD_FILE_NAME
#include HEAD_FILE_NAME
//頭檔案代碼部分
#endif
這裡要注意的是在include後用<>和“”包含頭檔案的不同,用<>包含頭檔案系統會首先直接到指定的頭檔案庫中尋找***.h,然後到項目目錄下尋找。而如果用“”包含頭檔案系統會首先在本項目目錄下尋找頭檔案,然後在系統指定的頭檔案庫中尋找,恰好是其相反的過程。
例子:比如我們需要一個名為headfile.h的頭檔案,那麼頭檔案可以寫:
#ifndef _HEADFILE_H_
#include _HEADFILE_H_
//頭檔案代碼
#endif
這樣寫可以避免重複定義,第一句#ifndef _HEADFILE_H_ 是說如果沒有定義_HEADFILE_H_頭檔案,則定義該檔案并且編譯下面的代碼。這樣在重複引用時,就不會出現重複定義的情況。
那麼,頭檔案究竟有怎樣的好處。我們在寫C程式調用時,直接寫上引用函數的聲明同樣可以調用通過,例如下面的例子:
A.cpp
#inlcude <stdlib>
void printtext();
void main(){
printtext();
}
B.cpp
#include <stdlib>
void printtext(){
printf("printtext!");
}
上面這兩個Cpp的效果和直接在main函數中print的效果相同。并且該方法同樣可以編譯通過。那麼為什麼還要寫頭檔案呢?答案就是這樣寫不安全,當函數較少時這麼做自然清晰,可一旦有較多的函數,同樣或類似函數名就會有很多,這樣程式很容易出點錯,并且你都不知道自己錯在哪裡!是以建議還是用頭函數的形式寫,安全高效!