如果讓你用C語言寫個宏定義,我相信大部分同學(xué)順手就能寫出define。
這也是C語言中最常見的宏定義寫法,這樣的代碼在預(yù)處理的時候直接被替換。
在C語言中,還有兩種宏定義容易被忽略。
一種是預(yù)定義宏,顧名思義,就是別人預(yù)先定義好的,拿過來用就行。
常見的比如file line date time 分別表示文件名、行號、日期和時間,主要就是讓用戶用起來更方便。
還有一種定義宏的方式,是在編譯的時候,以 gcc 為例。
#includeint main() { printf("%d ", A); return 0; }
我們在代碼中輸出 A,如果代碼直接拿過來編譯,肯定會報錯,A 既不是變量也不是常量,屬于未定義。
但是如果在編譯的時候,加上 -D 選項,后面跟上 A,可以給他賦值,也可以不賦值,那編譯就能順利通過,A默認的值是 1。
gcc test.c -o test -D A
這個用法的使用場景很多,比如跨平臺,比如加一些調(diào)試選項,如果定義了 DEBUG,就輸出下面的調(diào)試信息,編譯的時候,通過 -D 選項,就能控制調(diào)試信息是否輸出,可以避免項目發(fā)
布的時候,再去一行一行刪除調(diào)試信息。
-
C語言
+關(guān)注
關(guān)注
180文章
7628瀏覽量
139977 -
代碼
+關(guān)注
關(guān)注
30文章
4883瀏覽量
70114 -
宏定義
+關(guān)注
關(guān)注
0文章
51瀏覽量
9160 -
define
+關(guān)注
關(guān)注
0文章
16瀏覽量
3872
原文標題:不用define,如何定義宏
文章出處:【微信號:學(xué)益得智能硬件,微信公眾號:學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
C語言中預(yù)定義宏的用法和使用場景
C語言中的宏
C語言中的宏是什么
匯總和深挖C語言中宏定義所有的知識點

C語言中的__attribute__宏定義之section屬性

評論