2

私はプログラミングに比較的慣れていないので、C ++(Visual Studio 2010を使用)でwxWidgetsを使用する方法を学ぼうとしています。

wxWidgetsヘッダーファイル「app.h」を調べていたところ、#define理解できないディレクティブがいくつかあります。次に例を示します。

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

1つの「識別子」と1つの「置換」で#defineを見るのに慣れているので、このマクロに2つの「識別子」(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ディレクティブ」などで検索してみましたが、説明付きの例が見つかりませんでした。私がここに持っているもの。

4

1 に答える 1

3

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

pattern が一致すると、その後に続くすべてがwxIMPLEMENT_APP(appname)プログラムのテキストに配置されます。おそらく、これらの定義は両方とも、他のマクロ定義への参照のように見えるため、プリプロセッサによってさらに処理されます。wxIMPLEMENT_APP(appname)

于 2012-04-05T14:42:28.673 に答える