X-巨集

期望 X-macro 風格的主巨集的使用者為內部 X() 巨集提供他自己的定義,並在其範圍內擴充套件主巨集。因此,根據使用者對 X() 的定義擴充套件了主人的內部巨集引用。通過這種方式,可以減少原始檔中重複樣板程式碼的數量(在 X() 的替換文字中只出現一次),這是不要重複自己(DRY)哲學的擁護者所青睞的。

此外,通過重新定義 X() 並將主巨集擴充套件一次或多次,X 巨集可以促進維護相應的資料和程式碼 - 巨集的一次擴充套件宣告資料(例如,作為陣列元素或列舉成員),另一個擴充套件產生相應的程式碼。

儘管“X-macro”名稱來自內部巨集的傳統名稱,但該技術並不依賴於該特定名稱。可以使用任何有效的巨集名稱。

批評包括

  • 依賴 X 巨集的原始檔更難以閱讀;
  • 像所有的巨集一樣,X 巨集是嚴格的文字 - 它們本身並不提供任何型別的安全性; 和
  • X 巨集提供程式碼生成。與基於呼叫函式的替代方法相比,X 巨集有效地使程式碼更大。

關於 X 巨集的一個很好的解釋可以在 Randy Meyers 的 Dobbs 博士的文章[X-Macros]中找到( http://www.drdobbs.com/the-new-cx-macros/184401387)