1

저는 비교적 프로그래밍에 익숙하지 않아 C++ (Visual Studio 2010 사용)에서 wxWidgets를 사용하는 방법을 배우려고합니다.# 대체 지시어를 여러 개 사용 하시겠습니까?

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) 예를 들면 다음과 같습니다 하나의 "대체"(wxIMPLEMENT_APP_NO_THEMES (appname)) 또는 하나의 "식별자"(wxIMPLEMENT_APP(appname))와 두 개의 "대체"(wxIMPLEMENT_WX_THEME_SUPPORTwxIMPLEMENT_APP_NO_THEMES(appname)).

이 매크로를 어떻게 이해해야합니까?

나는 "매크로", "전처리 지시어", "텍스트 대체 매크로", "#define 지시문"및 유사 검색에서 온라인 및 텍스트 검색을 시도했지만 설명이있는 예제를 찾을 수 없습니다. 내가 여기있는 것과 닮았다.

+0

조언 : 매크로를 최후의 수단으로 유지하십시오. – iammilind

+0

귀하의 명명법을 사용하여 귀하의 매크로는 하나의 식별자와 하나의 식별자를가집니다. 식별자는 wxIMPLEMENT_APP (APPNAME가)', 교체가'있다'이다 wxIMPLEMENT_WX_THEME_SUPPORT wxIMPLEMENT_APP_NO_THEMES (APPNAME) "' –

+0

롭 : 당신의 도움에 대한 식별자 및 교체의 역할을 명확히 주셔서 감사합니다 –

답변

3

전처리 매크로에는 여러 줄에 걸쳐 단일 대체 분할이 있습니다. 줄의 끝에있는 \을 사용하면 여러 줄의 텍스트에 단일 "논리"줄을 쓸 수 있습니다. wxIMPLEMENT_APP(appname) 다음

모든 것은 wxIMPLEMENT_APP(appname) 패턴일치하는 프로그램의 텍스트에 배치 될 것이다; 아마도이 두 정의는 다른 매크로 정의에 대한 참조처럼 보이기 때문에 전처리기에 의해 추가로 처리됩니다.

+0

감사합니다, 내 특정 질문에 대답 이외에, 당신.. 나를위한 용어 몇 가지를 명확히하는 데 도움이되었습니다. –

관련 문제