C語言複習(七)---C前處理器
阿新 • • 發佈:2021-08-08
引言
C前處理器(C Preperocessor cpp)主要處理程式碼中的預處理命令,在編譯器之前執行---簡單的文字替換,替換後會生成對應的.i
檔案
重要的預處理命令:---嵌入式開發常用
#include | 匯入庫檔案 |
#define | 定義巨集---定義常量,字串,資料型別的別名 |
#undef | 取消已定義的巨集 |
#ifdef | 如果巨集已經定義,返回真 |
#ifndef | 如果巨集沒有定義,返回真 |
#if | 如果給定條件為真,則編譯下面的程式碼 |
#else | 和#if 搭配使用 |
#elif | 和#if 配套使用 |
#endif | 結束#if...#elif...#else |
#error | 遇到標準錯誤(stderr )時,輸出錯誤訊息 |
#pragma | 使用標準化方法向編譯器釋出特殊的命令到編譯器中---做出特殊操作 |
預定義巨集
在ANSI C中定義,可以直接使用
DATE | 當前日期,格式:MMM DD YYYY |
TIME | 當前時間,格式:HH:MM:SS |
FILE | 包含當前檔名,字串常量 |
LINE | 包含當前行號,十進位制常量 |
STDC | 編譯器以ANSI標準編譯時,定義為1 |
前處理器運算子
\
---巨集延續運算子---可以在下一行寫入巨集的內容
#
---字串常量化運算子---將巨集的引數轉化為字串常量
##
引數化的巨集
可以將一個簡單的函式作為一個巨集,不過要注意運算的順序
ex
#define Max(x,y) ((x)>(y)?(x):(y));