1、頭文件會(huì)多次包含預(yù)編譯,預(yù)編譯的處理就可以用來(lái)防止頭文件的重復(fù)包含和編譯。第二,使用宏定義可以提高程序的通用性和易讀性,減少不一致性,減少輸入錯(cuò)誤便于修改。展開(kāi)宏也是預(yù)編譯處理中的一項(xiàng)功能。
成都創(chuàng)新互聯(lián)公司專(zhuān)注于網(wǎng)站建設(shè)|網(wǎng)站維護(hù)|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計(jì)與制作經(jīng)驗(yàn),為許多企業(yè)提供了網(wǎng)站定制設(shè)計(jì)服務(wù),案例作品覆蓋鑿毛機(jī)等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷(xiāo)售的產(chǎn)品,結(jié)合品牌形象的塑造,量身建設(shè)品質(zhì)網(wǎng)站。
2、c語(yǔ)言提供了多種預(yù)處理功能,如宏定義、文件包含、條件編譯等。合理地使用預(yù)處理功能編寫(xiě)的程序便于閱讀、修改、移植和調(diào)試,也有利于模塊化程序設(shè)計(jì)。
3、預(yù)編譯是把一個(gè)工程中較穩(wěn)定的代碼預(yù)先編譯好放在一個(gè)文件里.這些預(yù)先編譯好的代碼可以是任何的C/C++代碼。而輸入程序后的運(yùn)行,只是將代碼編譯成了obj(object)文件,所有obj文件經(jīng)鏈接(link)成為可執(zhí)行文件。
4、任何一種編程語(yǔ)言的編譯都是把代碼轉(zhuǎn)換成機(jī)器代碼認(rèn)識(shí)的格式的過(guò)程,而C語(yǔ)言里的預(yù)編譯則是進(jìn)行類(lèi)似轉(zhuǎn)換宏,頭文件的代碼拷貝,條件語(yǔ)句轉(zhuǎn)換等等基礎(chǔ)的轉(zhuǎn)換工作。詳細(xì)可以看看百度百科里的內(nèi)容。
5、預(yù)處理器的主要作用就是把通過(guò)預(yù)處理的內(nèi)建功能對(duì)一個(gè)資源進(jìn)行等價(jià)替換,最常見(jiàn)的預(yù)處理器指令有:文件包含、條件編譯、布局控制和宏替換4種。
6、建議看看編譯原理。我們的PC機(jī),只能認(rèn)識(shí)機(jī)器碼,不認(rèn)識(shí)C語(yǔ)言的。編譯,就是讓C語(yǔ)言變得讓機(jī)器認(rèn)識(shí)。編譯過(guò)程,一般是:C語(yǔ)言--匯編語(yǔ)言--2進(jìn)制文件。2進(jìn)制文件由操作系統(tǒng)裝載,并調(diào)度運(yùn)行。
1、就是為編譯做的預(yù)備工作的階段,主要處理#開(kāi)始的預(yù)編譯指令,預(yù)編譯指令指示了在程序正式編譯前就由編譯器進(jìn)行的操作,可以放在程序中的任何位置。c 編譯系統(tǒng)在對(duì)程序進(jìn)行通常的編譯之前,先進(jìn)行預(yù)處理。
2、預(yù)處理:導(dǎo)入源程序并保存(C文件)。編譯:將源程序轉(zhuǎn)換為目標(biāo)文件(Obj文件)。鏈接:將目標(biāo)文件生成為可執(zhí)行文件(EXE文件)。運(yùn)行:執(zhí)行,獲取運(yùn)行結(jié)果的EXE文件。
3、稱(chēng)為可執(zhí)行程序,即使一個(gè)程序只包含一個(gè)源文件,編譯后得到的目標(biāo)程序也不能直接運(yùn)行,也要經(jīng)過(guò)連接階段,因?yàn)橐秃瘮?shù)庫(kù)進(jìn)行連接,才能生成可執(zhí)行程序。運(yùn)行可執(zhí)行程序,得到運(yùn)行結(jié)果。
4、任何一種編程語(yǔ)言的編譯都是把代碼轉(zhuǎn)換成機(jī)器代碼認(rèn)識(shí)的格式的過(guò)程,而C語(yǔ)言里的預(yù)編譯則是進(jìn)行類(lèi)似轉(zhuǎn)換宏,頭文件的代碼拷貝,條件語(yǔ)句轉(zhuǎn)換等等基礎(chǔ)的轉(zhuǎn)換工作。詳細(xì)可以看看百度百科里的內(nèi)容。
5、C語(yǔ)言程序可以使用在任意架構(gòu)的處理器上,只要那種架構(gòu)的處理器具有對(duì)應(yīng)的C語(yǔ)言編譯器和庫(kù),然后將C源代碼編譯、連接成目標(biāo)二進(jìn)制文件之后即可運(yùn)行。預(yù)處理:輸入源程序并保存(.C文件)。
6、頭文件會(huì)多次包含預(yù)編譯,預(yù)編譯的處理就可以用來(lái)防止頭文件的重復(fù)包含和編譯。第二,使用宏定義可以提高程序的通用性和易讀性,減少不一致性,減少輸入錯(cuò)誤便于修改。展開(kāi)宏也是預(yù)編譯處理中的一項(xiàng)功能。
C源程序-編譯預(yù)處理-編譯-優(yōu)化程序-匯編程序-鏈接程序-可執(zhí)行文件。預(yù)處理指令先對(duì)以#號(hào)開(kāi)頭的代碼(例如頭文件#include stdio.h、條件編譯指令#if/#ifdef等)進(jìn)行處理,而不是在程序編譯執(zhí)行時(shí)才處理的。
一般情況下,源代碼文件中的所有行都參加編譯,但有時(shí)需要指定一部分代碼在某個(gè)條件下才被編譯,這就叫做條件編譯。
1)條件編譯語(yǔ)句塊與函數(shù)定義體之間不存在相互嵌套(主要在(.h)文件中);2)條件編譯語(yǔ)句塊嵌套在函數(shù)體之外(主要在(.c)文件中);3)條件編譯語(yǔ)句嵌套在函數(shù)體內(nèi) (主要在(.c)文件中)。
預(yù)編譯程序?qū)杨^文件中的定義統(tǒng)統(tǒng)都加入到它所產(chǎn)生的輸出文件中,以供編譯程序?qū)χM(jìn)行處理。包含到c源程序中的頭文件可以是系統(tǒng)提供的,這些頭文件一般被放在/usr/include目錄下。在程序中#include它們要使用尖括號(hào)()。
include stdio.h#define S hello world\nint main(){printf(S); return 0;}C語(yǔ)言中的預(yù)處理也可以實(shí)現(xiàn)條件編譯功能,預(yù)處理到現(xiàn)在依然存在的一個(gè)重要原因就在于此。
當(dāng)前標(biāo)題:c語(yǔ)言函數(shù)預(yù)編譯 c語(yǔ)言預(yù)編譯指令有哪些
轉(zhuǎn)載注明:http://vcdvsql.cn/article28/ddpcjcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、移動(dòng)網(wǎng)站建設(shè)、ChatGPT、微信公眾號(hào)、商城網(wǎng)站、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)