內核雙向鏈表筆記

遇到一個這個樣的定義static list_create( table_done_list );,居然沒有聲明table_done_list 這個變量 

跟蹤代碼#define list_create(name) \
    struct list name = list_init(name)  可以看到list_create是一個宏定義

    list_init也是一個宏定義 #define list_init(name) { NULL, NULL, 0 }

其實替換下來就是 

static list_create( table_done_list )   就是   static struct list table_done_list = { NULL, NULL, 0 } 也就是用這種方式聲明瞭一個靜態變量

 

詳細分析請看https://www.cnblogs.com/skywang12345/p/3562146.html

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