1

私はプログラミングが比較的新しいので、Visual Studio 2010でwxWidgetsをC++で使用する方法を学びたいと考えています。複数の置換えがある#defineディレクティブ?

私はwxWidgetsヘッダーファイル "app.h"を調べていましたが、私が理解できないいくつかの#defineディレクティブがあります。

#define wxIMPLEMENT_APP(appname)   \ 
    wxIMPLEMENT_WX_THEME_SUPPORT   \ 
    wxIMPLEMENT_APP_NO_THEMES(appname)" 

私は一つの「識別子」と一つの「交換」との#defineを見ることに慣れているので、このマクロは二つの「識別子」を持っている場合、私は理解することはできません(wxIMPLEMENT_APP(appname)wxIMPLEMENT_WX_THEME_SUPPORT):ここでは一例であり、 1つの「置換」(wxIMPLEMENT_APP_NO_THEMES (appname))、または1つの「識別子」(wxIMPLEMENT_APP(appname))と2つの「置換」(wxIMPLEMENT_WX_THEME_SUPPORTおよびwxIMPLEMENT_APP_NO_THEMES(appname))が含まれます。

このマクロを理解するにはどうすればよいですか?

"マクロ"、 "プリプロセッサディレクティブ"、 "テキスト置換マクロ"、 "#defineディレクティブ"などで検索してみましたが、説明付きの例は見つかりませんでした私はここにあるもののように見える。

+0

アドバイス:最後の手段としてマクロを保存してください。 – iammilind

+0

あなたの命名法を使用して、あなたのマクロは1つの識別子と1つの置換えを持っています。 –

+0

Rob:識別子と置換の役割を明確にしてくれてありがとう –

答えて

3

このプリプロセッサマクロには、複数の行にわたる1つの置換分割があります。行末尾の\を使用すると、複数のテキスト行に1つの "論理"行を書き込むことができます。

wxIMPLEMENT_APP(appname)のパターンは、wxIMPLEMENT_APP(appname)のパターンがの場合、と一致します。恐らく、これらの定義は、他のマクロ定義への参照のように見えるので、プリプロセッサによってさらに処理されるでしょう。

+0

あなたの助けてくれてありがとうございました;私の特定の質問に答えるだけでなく、あなたはあなたの助けを借りています。私の専門用語の一部を明確にするのに役立ちました。 –

関連する問題