目錄
#define __STM32_PIN(index, gpio, gpio_index) \
{ \
index, GPIO##gpio##_CLK_ENABLE, GPIO##gpio, GPIO_PIN_##gpio_index \
}
##的用法
上面是rtthread中的一段代碼,注意宏定義中##的用法。這樣可以簡化宏定義。這段代碼實際上使用一種簡單易讀的方法表示了一個結構體。這種方法用在STM32的gpio設置中很有意思。
#define A(x) ##x
#define B(x) #@x
#define C(x) #x
如果我們假設x=1,那麼A(1)就是1,B(1)就是‘1’,C(1)就是”1“
用宏定義計算一個數組中定義的元素的個數
#define ITEM_NUM(items) sizeof(items) / sizeof(items[0])
上述代碼來自rtthread