C語言預處理命令有哪些

2022-10-05 14:24:07 字數 607 閱讀 5860

往往我說今天上課的內容是預處理時,便有學生質疑:預處理不就是include 和define麼?這也用得著講啊?。

是的,非常值得討論,即使是include 和define。但是預處理僅限於此嗎?遠遠不止。

先看幾個個常識性問題:

a)預處理是c 語言的一部分嗎?

b)包含「#」號的都是預處理嗎?

c)預處理指令後面都不需要加「;」號嗎?

不要急著回答,先看看ansi 標準定義的c 語言預處理指令:

另外ansi 標準c 還定義了如下幾個巨集:

1. _line_ 表示正在編譯的檔案的行號

2. _file_ 表示正在編譯的檔案的名字

3. _date_ 表示編譯時刻的日期字串,例如: "25 dec 2007"

4. _time_ 表示編譯時刻的時間字串,例如: "12:30:55"

5. _stdc_ 判斷該檔案是不是定義成標準c 程式

如果編譯器不是標準的,則可能僅支援以上巨集的一部分,或根本不支援。當然編譯器也有可能還提供其它預定義的巨集名。注意:巨集名的書寫由識別符號與兩邊各二條下劃線構成。

相信很多初學者,甚至一些有經驗的程式設計師都沒有完全掌握這些內容,下面就一一詳細討論這些預處理指令。

預處理命令詳解

指令用途 空指令,無任何效果 include包含乙個源 檔案 define定義巨集 undef取消已定義的巨集 if如果給定條件為真,則編譯下面 ifdef如果巨集已經定義,則編譯下面 ifndef如果巨集沒有定義,則編譯下面 elif如果前面的 if給定條件不為真,當前條件為真,則編譯下面 end...

C語言基礎自學總結之九 預處理

1.預處理一般是指在程式源 被翻譯為目標 的過程中,生成二進位制 之前的過程 3.預處理是 把.c檔案變成.i 檔案,他們都是c語言檔案,預處理做的第一件事就是展開標頭檔案,把檔案內容寫出來。第二件事就是替換巨集。例子1 什麼叫做巨集 include define n 6 這就是巨集,意思是用6替換...

C 實驗報告函式與預處理

實驗報告 1.判別素數的程式 include using namespace std int main if flag cout 用17 34 2 1 0執行和檢驗。執行結果 結果分析 對於0和1來說,兩者都不是素數。其它執行結果均正確。2.驗證歌德 猜想 include include using...