預處理器定義的符號
符號 樣例值 含義
__file__ name.c 進行編譯的源檔名
__line__ 25 檔案當前行的行號
__data__ jan 31 1987 檔案被編譯的日期
__time__ 18:04:30 檔案被編譯的時間
__stdc__ 1 如果編譯器遵循ansi c,其值為1,否則未定義
#define name(parameter-list) stuff prameter-list與name緊鄰
##將位於兩邊的符號連線成乙個符號。
#argument--->"argument"
巨集與型別無關
#undef 移除乙個巨集定義
#if #endif
#if #elif #else #endif
#if defined(symbol)= #ifdef symbol
#if !defined(symbol) =#ifndef symbol
#ifndef _headername_h
#define _headername_h 1 加入語句後 檔案只會被編譯一次
C語言 預處理器
如果想在下一行延續指令,則在當前行末尾使用 字元 帶引數的巨集 define max x,y x y x y define is even n n 2 0 則i max j k,m n if is even i i 將被替換為 i j k m n j k m n if i 2 0 i 巨集的替換列表...
C語言 預處理器
指令 描述 define 定義巨集 macro include 包含乙個源 檔案 undef 取消已定義的巨集 ifdef 如果巨集已經定義,則返回真 ifndef 如果巨集沒有定義,則返回真 if如果給定條件為真,則編譯下面 else if 的替代方案 endif 結束乙個if.else條件編譯塊...
C語言 預處理器
6 gcc編譯器檢視替換後的編碼 7 標頭檔案相互包含導致的重定義錯誤 指令 描述 define 定義巨集 include 包含乙個源 檔案 undef 取消已定義的巨集 ifdef 如果巨集已經定義,則返回真 ifndef 如果巨集沒有定義,則返回真 if如果給定條件為真,則編譯下面 else i...