我想創建一個不使用參數但具有預定義的整數和使用的字符串的宏。使用字符串連接的宏
我關於與宏類似的東西,有論據之前問這是怎麼回事:
#define BUZZER_PIN 1
#define BUZZER_PORT B
#define BUZZER_ALT 1
#define INIT_BUZZER_(PORTX, PIN, ALT) \
do { \
PORT##PORTX##_PCR(PIN) = PORT_PCR_MUX(ALT) | PORT_PCR_DSE_MASK; \
GPIO##PORTX##_PDDR |= (PIN)<<1; \
} while (0)
#define INIT_BUZZER(PORTX, PIN, ALT) \
INIT_BUZZER_(PORTX, PIN, ALT)
,但如果我只是想有INIT_BUZZER
將要參考INIT_BUZZER_
及以上做什麼?
我想:
#define INIT_BUZZER INIT_BUZZER_(BUZZER_PORT, BUZZER_PIN, BUZZER_ALT)
我總是隻有與字符串的問題,我不明白,部分好。 如果我把它這樣,我得到BUZZER_PORT
處理爲字符串BUZZER_PORT
並不像它的價值= B
stringify指令怎麼樣? '#BUZZER'將降低由雙引號包圍的'BUZZER'宏的值。 – 2013-07-11 22:19:29
你不能有兩個同名的宏。 – jxh
你不是想同時定義兩個版本的'INIT_BUZZER',是嗎? – user2357112