1. 程式人生 > >C語言中頭文件——你亂嗎????

C語言中頭文件——你亂嗎????

local details 順序 方便 引用 搜索 匯編 g++ 當前

如果爾等之輩問本大神,為什麽需要頭文件呢?本大神告訴你:想要知道為什麽需要頭文件的話,你就應該知道C語言編譯的過程;

本大神為你們準備了基本知識:

C語言文件的編譯與執行的四個階段並分別描述:

C++中的頭文件和源文件:如何寫頭文件 (這個寫的很好,明白)

為什麽有頭文件的原因:(按步驟來)

1. 在一個文件A中,如果要使用另一個文件B裏的函數 sum(),那麽我們就需要在文件A裏面聲明函數 sum(); 對吧;

2. 如果在文件A 需要使用文件B裏的多個函數 , 那麽就需要在文件A中聲明文件B裏的多個函數;是不是有點麻煩?

3,現在定義了一個頭文件B.h,裏面寫入文件B裏的函數的聲明;  我們直接在文件A裏面 #inlucde“B.h” 就可以;這樣也方便其它文件引用B文件裏的函數;

至於頭文件裏都可以寫入什麽,它怎麽寫,那就看:c語言頭文件怎麽寫?

頭文件只在編繹(具體為:預處理,編譯,匯編)的時候有用,把源碼編繹生成 .o 文件;

補充一下頭文件的搜索目錄:

#include <>直接到系統指定的某些目錄中去查找。
#include “”先在當前目錄去找,然後再到系統指定的某些目錄中去查找;

那麽,系統指定了哪些目錄呢?

1.由gcc的參數-I 指定的路徑(指定路徑有多個路徑時,按指定路徑的順序搜索)

2.然後找gcc的環境變量 C_INCLUDE_PATH, CPLUS_INCLUDE_PATH, OBJC_INCLUDE_PATH

3.再找內定目錄
/usr/include
/usr/local/include
/usr/lib/gcc-lib/i386-linux/2.95.2/include
/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g++-3
/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include

C語言中頭文件——你亂嗎????