C 語言預處理器(筆記)

2021-06-05 12:26:01 字數 872 閱讀 6993

預處理器定義的符號

符號                               樣例值                  含義

__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...