欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
這段C語言宏定義代碼是什么意思?
[打印本頁]
作者:
阿常
時間:
2023-10-25 08:38
標題:
這段C語言宏定義代碼是什么意思?
這段代碼怎么理解,宏定義不是代表一個變量嗎,像這樣
#define MAXTIME 1000,
怎么還能代表多個?
/*******************************************************************
AD按鍵表
*******************************************************************/
#define ADKEY_BT_SHORT \
/*00*/ NO_MSG,\
/*01*/ NO_MSG,\
/*02*/ MSG_BT_CALL_REJECT,\
/*03*/ MSG_BT_CALL_HANGUP,\
/*04*/ MSG_BT_CALL_LAST_NO,\
/*05*/ MSG_EQ_MODE,\
/*06*/ MSG_CHANGE_WORKMODE,\
/*07*/ MSG_BT_PREV_FILE,\
/*08*/ MSG_BT_NEXT_FILE,\
/*09*/ MSG_BT_PP,
#define ADKEY_BT_LONG \
/*00*/ NO_MSG,\
/*01*/ NO_MSG,\
/*02*/ NO_MSG,\
/*03*/ NO_MSG,\
/*04*/ NO_MSG,\
/*05*/ NO_MSG,\
/*06*/ NO_MSG,\
/*07*/ MSG_VOL_DOWN,\
/*08*/ MSG_VOL_UP,\
/*09*/ MSG_POWER_OFF,
#define ADKEY_BT_HOLD \
/*00*/ NO_MSG,\
/*01*/ NO_MSG,\
/*02*/ NO_MSG,\
/*03*/ NO_MSG,\
/*04*/ NO_MSG,\
/*05*/ NO_MSG,\
/*06*/ NO_MSG,\
/*07*/ MSG_VOL_DOWN,\
/*08*/ MSG_VOL_UP,\
/*09*/ MSG_POWER_OFF_HOLD,
#define ADKEY_BT_LONG_UP \
/*00*/ NO_MSG,\
/*01*/ NO_MSG,\
/*02*/ NO_MSG,\
/*03*/ NO_MSG,\
/*04*/ NO_MSG,\
/*05*/ NO_MSG,\
/*06*/ NO_MSG,\
/*07*/ MSG_VOL_KEY_UP,\
/*08*/ MSG_VOL_KEY_UP,\
/*09*/ MSG_POWER_KEY_UP,
const u16 task_bt_ad_table[4][KEY_REG_AD_MAX] = {
/*短按*/ {ADKEY_BT_SHORT},
/*長按*/ {ADKEY_BT_LONG},
/*連按*/ {ADKEY_BT_HOLD},
/*長按抬起*/ {ADKEY_BT_LONG_UP},
};
復制代碼
作者:
hero_71
時間:
2023-10-25 08:52
替換進去,就是一個二維數組
作者:
Hephaestus
時間:
2023-10-25 11:25
這四個就是二維數組task_bt_ad_table的初值。
作者:
ppcbug
時間:
2023-10-25 17:25
樓主 低估宏定義了。 宏定義可以代替 幾乎 所有東西 ,除了不含分割/運算符的特殊情況。
宏定義的含義是, 在編譯時 , 用 宏 替換掉 源程序。
所以 宏不但可以是變量, 也可以是 函數,甚至是整個程序的一部分代碼。幾乎可以是任何東西。
不好用的情況是沒有分割運算符, 例如:
#define MM "Matix"
函數 int GetMatix(); 不能替換為 int GetMM() ;
作者:
chenmingwu
時間:
2023-10-25 22:36
宏定義是編譯器最開始編譯的,編譯器做的事很簡單,直接文本替換
作者:
Hephaestus
時間:
2023-10-25 23:28
ppcbug 發表于 2023-10-25 17:25
樓主 低估宏定義了。 宏定義可以代替 幾乎 所有東西 ,除了不含分割/運算符的特殊情況。
宏定義的含義 ...
可以用##連接符。
作者:
powerdruy
時間:
2023-10-26 14:37
宏只是文本替換,本質上就是替換編輯器里的字符
作者:
powerdruy
時間:
2023-10-26 14:38
只不過宏有一些操作符,比純粹的手寫字符多了一點功能,不如##連接符號,我記得contiki這個協程操作系統就是巧妙利用宏的操作符,將一個巨大的switchcase偽裝成了一個多任務系統的樣式
作者:
Y_G_G
時間:
2023-10-26 22:07
宏定義就是文本替換
可以對一個文本進行多個定義,方便代碼編寫
比如,控制端口低電平開啟PNP三極管可以這樣定義
#define ON 0
#define OFF 1
LED = ON;要比 LED = 0;更好理解
如果程序中還有其它是要高電平開啟的,就可以這樣定義
#define HI 1
#define LOW 0
這樣程序理起來就不會一下子0開,一下子1開.....思維不會過于別扭
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1