如果讓你用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語言
+關注
關注
183文章
7644瀏覽量
145576 -
代碼
+關注
關注
30文章
4968瀏覽量
73960 -
宏定義
+關注
關注
0文章
51瀏覽量
9412 -
define
+關注
關注
0文章
16瀏覽量
4127
原文標題:不用define,如何定義宏
文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
匯總和深挖C語言中宏定義所有的知識點
知識點在剛開始接觸時,我感覺比較難懂、不好理解,那么以后不論我花多長時間去研究這個知識點,心里會一直認為該知識點比較難,也就是說第一印象特別的重要。 就比如 C 語言中的宏定義,好像跟
C語言中的__attribute__宏定義之section屬性
C語言中的 __attribute__宏之section屬性文章目錄C語言中的 __attribute__
發表于 11-16 18:21
?47次下載
C語言中最常見的宏定義寫法
評論