C語言中define的值得關注的用法

 

目錄

##的用法

用宏定義計算一個數組中定義的元素的個數


#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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章