今天分享一個(gè)C語言宏定義小技巧,從語法上來看比較簡單,不過一旦真正領(lǐng)悟到其精妙之處不僅可以簡化代碼、還能提高代碼的可擴(kuò)展性。X-MACRO宏技術(shù)的核心在于靈活的應(yīng)用#define與#undef,對于玩C語言的伙計(jì)#define是再熟悉不過了,但#undef卻鮮有人在實(shí)際的開發(fā)過程中熟練使用,基本上都是#define走天下。那#define的作用域是怎樣的呢?其作用范圍都是從宏定義處到文件結(jié)束,不管函數(shù)內(nèi)外均可以隨意使用。那一不小心使用#define重復(fù)定義相同的宏又會(huì)怎樣呢?對于大部分編譯器會(huì)報(bào)重復(fù)定義警告,但也有小部分編譯器采用最近的宏定義直接通過,所以稍不留神就把bug引入到了代碼中。其實(shí)對于C語言編程素養(yǎng)良好的工程師們多會(huì)使用#undef來限制宏定義的作用范圍,即取消宏定義,以免造成宏泛濫。