Looking for c Answers? Try Ask4KnowledgeBase
Looking for c Keywords? Try Ask4Keywords

C LanguageXマクロ


前書き

Xマクロは、コードの繰り返しを最小限に抑え、データ/コードの対応を維持するためのプリプロセッサベースの手法です。共通のデータセットに基づく複数の別個のマクロ拡張は、単一のマスターマクロを介して拡張グループ全体を表現することによってサポートされ、そのマクロの置換テキストは、各データに対して1つの内部マクロの一連の拡張からなる。内側のマクロは、伝統的にX()という名前が付けられているため、テクニックの名前です。

備考

Xマクロスタイルのマスターマクロのユーザーは、内部のX()マクロと、その範囲内でマスターマクロを展開する独自の定義を提供することが期待されます。したがって、マスターの内部マクロ参照は、ユーザーのX()の定義に従って拡張されます。このようにして、ソースファイル内の反復可能な定型コードの量は、「自分自身を繰り返さない」(DRY)という考え方に支持されているように、 X()置換テキストで1回しか表示されません。

さらに、 X()を再定義し、さらに1回または複数回マスターマクロを展開することにより、Xマクロは対応するデータとコードの管理を容易にすることができます。マクロを展開するとデータが宣言されます(たとえば、配列要素または列挙型メンバとして)。他の拡張は対応するコードを生成する。

「Xマクロ」という名前は内部マクロの伝統的な名前に由来しますが、テクニックはその特定の名前に依存しません。その代わりに、任意の有効なマクロ名を使用できます。

批判には

  • Xマクロに依存するソースファイルは読みにくくなります。
  • すべてのマクロのように、Xマクロは厳密にテキスト形式です。つまり、本質的に型の安全性を提供するものではありません。そして
  • Xマクロはコード生成を提供します 。呼び出し関数に基づく代替方法と比較して、Xマクロは効果的にコードを大きくします。

Xマクロの良い説明は、Dr. Dobbs( http://www.drdobbs.com/the-new-cx-macros/184401387)の Randy Meyersの記事[X-Macros]にあります

Xマクロ 関連する例