真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C語言中include能包含什么文件

本篇內(nèi)容主要講解“C語言中include能包含什么文件”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“C語言中include能包含什么文件”吧!

成都創(chuàng)新互聯(lián)公司長期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為遂昌企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計,遂昌網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

文/Edward  

之前我們已經(jīng)講到過,#include預(yù)處理指令使另外一個文件的內(nèi)容在預(yù)處理的時候,先會被復(fù)制到當前的.c文件中來,產(chǎn)生一個中間文件,一般情況下,這個中間文件是存儲在編譯器內(nèi)存里面的,它不會被輸出,但是我們可以使用gcc命令來將這個文件存儲下來,即使用” gcc -E ./helloworld.c > a.out”命令,即可將預(yù)處理產(chǎn)生的內(nèi)容保留出來。如圖1所示。

 C語言中include能包含什么文件
圖1 預(yù)處理輸出文件

我們在圖1中,僅僅簡單地包含了一個我們自己寫的一個頭文件,這個頭文件里面有一個#define定義的標號MAX,也有一個變量a,當我們包含了這個頭文件并且進行編譯的時候,編譯器便會將頭文件里面的內(nèi)容在編譯流程的預(yù)處理階段把.c源文件中的相關(guān)標號定義全部替換掉,如果.h頭文件里面包含了變量的定義,便會將變量的定義原封不動地復(fù)制到.c源文件中。以上內(nèi)容就是文件包含的全部內(nèi)容。
然而#include預(yù)處理如果再深究下去,它的內(nèi)容可不止如此。

  庫函數(shù)的包含和本地頭文件的包含
前面我們也講到過,用#include包含頭文件的時候,根據(jù)包含的頭文件到底是庫函數(shù)還是用戶自己寫的本地頭文件分別有不同的包含方式。
如果用#include包含庫函數(shù),那么其包含的方式為:
#include    
對于filename不存在任何限制,不過根據(jù)約定,標準庫的庫文件以一個.h后綴結(jié)尾。編譯器通過查找由編譯器定義的“一系列標準庫路徑”來查找?guī)旌瘮?shù)的頭文件。比如,在典型的UNIX/類UNIX系統(tǒng)上,C編譯器在/user/include/目錄中去查找?guī)旌瘮?shù)的頭文件。
如果是本地頭文件的包含,那么其包含方式為:
#include “filename”
這個頭文件如果和所有的源文件放置在一個目錄底下,那么就無需去顯式地指明其路徑。如果不在同一個文件夾下,那么UNIX和BorlandC編譯器都支持一種變體形式,即使用絕對地址的路徑名。如:
#include “../src/usart/ usart.h”

    頭文件的形式
再來想一想,C語言中的#include只能支持包含.h后綴的頭文件嗎?其實不然,除了C語言標準庫文件在編寫時是按照約定以.h結(jié)尾的,用戶自己定義的頭文件根本就沒有這一條規(guī)定。比如圖2所示。

C語言中include能包含什么文件
圖2 C語言包含亂七八糟后綴名的頭文件

在圖2中大家可以看到,我在b.c這個C語言源文件里面包含了一個c.x的頭文件,這個c.x后綴名我自己也不知道是什么意思。但是奇怪的是,編譯器在做預(yù)處理的時候,竟然將c.x文件中的內(nèi)容正常的處理過來了,除了VSCode做代碼靜態(tài)解析的時候,有錯誤提示之外,其他貌似什么事情都沒有發(fā)生。因此,在一個.c文件里面用#include包含什么后綴的文件,在C語言里面沒有規(guī)定。只不過約定俗成,都用.h結(jié)尾的文件來當頭文件而已。
但是,C語言中源文件的后綴名有明確要求,一定要用.c后綴的文件。

    頭文件里面的內(nèi)容
接下來,最后一個內(nèi)容,頭文件里面到底可以用來寫什么內(nèi)容。這個問題非常玄乎,C語言也沒有規(guī)定,隨便你自己去寫。我之前看到過有個哥們(一個半路出家的工程師)將函數(shù)全部定義在頭文件中。對于這樣的人才,我除了說他天資聰穎,資質(zhì)過人,骨骼精奇這樣的褒義詞之外,根本就詞窮了。C語言的頭文件里面的的確確可以用來寫函數(shù),你沒有聽錯,我再寫一遍,的的確確可以用來寫函數(shù)。但是,這樣子寫出來的函數(shù)很難被多個其它文件包含。這個問題我本來不想展開講解,因為殺傷力太大,我怕將這個反面教材正面化了。但是滿足大家的好奇,還是貼出來了,如圖3所示。
C語言中include能包含什么文件
圖3 反面教材

到此,相信大家對“C語言中include能包含什么文件”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


新聞名稱:C語言中include能包含什么文件
URL標題:http://weahome.cn/article/jgejjd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部