如果讓你用C語言寫個宏定義,我相信大部分同學順手就能寫出define。
這也是C語言中最常見的宏定義寫法,這樣的代碼在預處理的時候直接被替換。
在C語言中,還有兩種宏定義容易被忽略。
一種是預定義宏,顧名思義,就是別人預先定義好的,拿過來用就行。
常見的比如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
這個用法的使用場景很多,比如跨平臺,比如加一些調試選項,如果定義了 DEBUG,就輸出下面的調試信息,編譯的時候,通過 -D 選項,就能控制調試信息是否輸出,可以避免項目發
布的時候,再去一行一行刪除調試信息。
-
C語言
+關注
關注
180文章
7604瀏覽量
136696 -
代碼
+關注
關注
30文章
4779瀏覽量
68525 -
宏定義
+關注
關注
0文章
50瀏覽量
9007 -
define
+關注
關注
0文章
15瀏覽量
3742
原文標題:不用define,如何定義宏
文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論