您好,登錄后才能下訂單哦!
這篇文章主要介紹“C語言預(yù)編譯怎么使用”的相關(guān)知識,小編通過實(shí)際案例向大家展示操作過程,操作方法簡單快捷,實(shí)用性強(qiáng),希望這篇“C語言預(yù)編譯怎么使用”文章能幫助大家解決問題。
這些符號都可以直接使用:
__FILE__ 點(diǎn)c文件全名
__LINE__ 當(dāng)前行號
__DATE__ 編譯日期
__TIME__ 編譯時間
舉例:
#include<stdio.h> int main() { printf("文件全名:%s\n", __FILE__); printf("當(dāng)前運(yùn)行行號:%d\n", __LINE__); printf("編譯日期:%s\n", __DATE__); printf("編譯時間:%s\n", __TIME__); return 0; }
效果:
#define 名 值
不帶分號。預(yù)編譯階段,所有名字會被值替換。
舉例:給printf取個別名。
#include<stdio.h> #define say printf int main() { say("你好,世界!\n"); return 0; }
效果:
舉例:自定義一個死循環(huán)符號。
#include<stdio.h> #define loop while(1) int main() { int i = 0; loop{ if (i > 1000) { break; } else { printf("你好,世界!\t%d\n",i); i++; } } return 0; }
效果:
和自定義符合差不多。
相當(dāng)于函數(shù),只不過在預(yù)編譯的階段就會執(zhí)行。
然后替換掉。
#define 名 ( 參數(shù)列表 ) 表達(dá)式
舉例:輸出字符串。
#include<stdio.h> #define say(s)printf(s) int main() { say("你好,世界!\n"); return 0; }
效果:
替換邏輯:遞歸。
看參數(shù)有沒有define,有就套娃。
直到?jīng)]有,替換自己。
字符串內(nèi)部的符號會被忽略。
可以用#define定義一個符號,代表是否要執(zhí)行。
#include<stdio.h> #define __DEBUG__ 1 int main() { if (__DEBUG__) { printf("調(diào)試模式開啟\n"); } else { printf("調(diào)試模式關(guān)閉\n"); } return 0; }
效果:
同時,可以讓這段代碼直接跳過編譯。
#include<stdio.h> #define __DEBUG__ 1 int main() { #if __DEBUG__ printf("調(diào)試模式開啟\n"); #endif return 0; }
這種寫法也有配套的選擇分支。
#include<stdio.h> #define __DEBUG__ 0 #define __WARN__ 1 int main() { #if __DEBUG__ printf("調(diào)試模式\n"); #elif __WARN__ printf("警告模式\n"); #else printf("正常模式\n"); #endif return 0; }
效果:
關(guān)于“C語言預(yù)編譯怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點(diǎn)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。