新聞中心
C語言里面的預(yù)處理是什么意思?
c語言中的文件預(yù)處理是指在進(jìn)行編譯的第一遍掃描即詞法掃描和語法分析之前所作的工作。
預(yù)處理是C語言的一個(gè)重要功能, 它由預(yù)處理程序負(fù)責(zé)完成,當(dāng)對一個(gè)源文件進(jìn)行編譯時(shí), 系統(tǒng)將自動引用預(yù)處理程序?qū)υ闯绦蛑械念A(yù)處理部分作處理, 處理完畢自動進(jìn)入對源程序的編譯。

預(yù)處理 功能主要包括: 宏定義,文件包含,條件編譯三部分。 分別對應(yīng)宏定義命令,文件包含命令,條件編譯命令 三部分實(shí)現(xiàn)。 預(yù)處理過程讀入源代碼,檢查包含預(yù)處理指令的語句和宏定義, 并對源代碼進(jìn)行響應(yīng)的轉(zhuǎn)換。預(yù)處理過程還會刪除程序中的注釋 和多余的空白字符。 預(yù)處理指令是以#號開頭的代碼行。 #號必須是該行除了任何空白字符外的第一個(gè)字符。 #后是指令關(guān)鍵字,在關(guān)鍵字和#號之間允許存在任意 個(gè)數(shù)的空白字符。整行語句構(gòu)成了一條預(yù)處理指令, 該指令將在編譯器進(jìn)行編譯之前對源代碼做某些轉(zhuǎn)換。 指令 用途 # 空指令,無任何效果 #include 包含一個(gè)源代碼文件 #define 定義宏 #undef 取消已定義的宏 #if 如果給定條件為真,則編譯下面代碼 #ifdef 如果宏已經(jīng)定義,則編譯下面代碼 #ifndef 如果宏沒有定義,則編譯下面代碼 #elif 如果前面的#if給定條件不為真,當(dāng)前條件為真,則編譯下面代碼 #endif 結(jié)束一個(gè)#if……#else條件編譯塊 #error 停止編譯并顯示錯(cuò)誤信息 #else 條件編譯的否則選項(xiàng) #error 指令將使編譯器顯示一條錯(cuò)誤信息,然后停止編譯。 #line 指令可以改變編譯器用來指出警告和錯(cuò)誤信息的文件號和行號。 #pragma 指令沒有正式的定義。編譯器可以自定義其用途。典型的用法是禁止或允許某些煩人的警告信息。 文件包含 在程序中包含頭文件有兩種格式: #include
c程序中兩種最常用的預(yù)處理命令是文件包括和?
C語言的預(yù)處理主要有三個(gè)方面的內(nèi)容: 1.宏定義; 2.文件包含; 3.條件編譯。 預(yù)處理命令以符號“#”開頭。 宏定義命令:#define、#undef,用來定義和解除宏。(值得注意的是還可以定義帶參數(shù)的宏) 文件包含命令:#include "文件名" 或者 #include <文件名>。使用前者時(shí)會優(yōu)先從當(dāng)前目錄查找頭文件,使用后者時(shí)優(yōu)先從默認(rèn)的系統(tǒng)目錄查找。 條件編譯:#ifdef、#else、#endif、#elif 等。出于程序兼容性的考慮,有些語句希望在條件滿足時(shí)才編譯。這時(shí)候會用到條件編譯的命令。
預(yù)處理命令行必須位于C源程序的起始位置嗎?
預(yù)處理命令是以“#”號開頭的命令,它們不是C語言的可執(zhí)行命令,這些命令應(yīng)該在函數(shù)之外書寫,一般在源文件的最前面書寫,稱為預(yù)處理部分。在C編譯系統(tǒng)編譯源程序之前,先要對源程序中的預(yù)處理命令進(jìn)行處理,處理完畢之后才能對源程序進(jìn)行編譯。在全屏幕編輯環(huán)境下,預(yù)處理是在編譯之前自動由系統(tǒng)處理的。 因?yàn)榇蠖鄶?shù)程序都用這個(gè)printf函數(shù),而這個(gè)函數(shù)的頭文件是“stdio.h”,所以一般要包括上。
到此,以上就是小編對于c語言的預(yù)處理命令有哪些類型的問題就介紹到這了,希望這3點(diǎn)解答對大家有用。
新聞名稱:c語言的預(yù)處理命令有哪些
文章地址:http://m.fisionsoft.com.cn/article/djhjpis.html


咨詢
建站咨詢
