C語言標頭檔的作用

來源:互聯網
上載者:User

C99中規定, 所有頂層的預設儲存類標誌符都是extern !!老子又猜對了

標頭檔中聲明的函數,預設都是extern首碼。但是為了我們程式員方便,我們採取下面的手段:

我個人認為是extern催生了標頭檔的誕生。
在沒有標頭檔的情況下,所有本.c檔案引用的外部函數定義,都要在自己.c檔案內聲明 並且加首碼extern

在代碼增多,項目複雜的情況下,這個手段有點粗糙,那麼我們把想提供給外部.c檔案使用的函數放在標頭檔中(預設是extern首碼)

那麼當其他某個.c檔案需要用到這些函數的時候,只要包含了這個標頭檔,那麼在預先處理後,標頭檔被完整的複製到.c檔案內,

這也就用另外一種間接的方式完成了原來的工作。

我們這麼使用,如果某個函數不想被外部使用(很多時候這樣),我們就在.c檔案開始聲明(並加以static首碼)這樣,外部函數就找不到了
如果我們想讓外部.c檔案找到這個函數,就聲明在標頭檔中。想使用的.c檔案包含這個標頭檔就好。

編譯的時候,只要每個函數都又聲明就可以。
串連的時候,連接器發現本.o檔案中沒有某個函數的定義,根據當前串連 對象列表(我們把一堆.o檔案串連到一塊,這一堆,叫做連線物件列表),
去找函數的定義

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.