複数行プリプロセッサ マクロ: C での複雑なマクロの作成
C で複数行プリプロセッサ マクロを作成すると、開発者は次の複雑なブロックを定義できます。プログラム全体で簡単に再利用できるコード。 #define sqr(X) (X*X) のような単一行マクロは簡単ですが、複数行にわたるより複雑なマクロが必要になることがよくあります。
複数行マクロを定義する方法
複数行マクロを定義するには、行継続エスケープ文字としてバックスラッシュ () 文字を使用するだけです。たとえば、次のマクロは、foo と doFoo() という 2 つのメンバーを持つクラス X を定義します。
<code class="c++">#define someMacro(X) \ class X : public otherClass \ { \ int foo; \ void doFoo(); \ };</code>
バックスラッシュはマクロの一部である各行の最後の文字である必要があることに注意してください。バックスラッシュの後に空白やその他の文字を追加すると、コンパイル エラーが発生します。
マクロの例
2 つの変数の値を交換する次のマクロの例を考えてみましょう。
<code class="c++">#define swap(a, b) { \ (a) ^= (b); \ (b) ^= (a); \ (a) ^= (b); \ }</code>
このマクロを使用すると、2 つの変数の値を簡単に交換できます:
<code class="c++">int main() { int a = 10; int b = 20; swap(a, b); std::cout << "a: " << a << std::endl; std::cout << "b: " << b << std::endl; return 0; }</code>
出力:
a: 20 b: 10
複数行マクロの利点
複数行マクロには、いくつかの利点があります。
以上がC で複数行のプリプロセッサ マクロを定義して使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。