- マクロ代入( #define )
- プログラムのプロパティ (#property)
- ファイルの読み込み (#include)
- 関数のインポート( #import )
- 条件付きコンパイル( #ifdef、#ifndef、#else、#endif )
조건부 컴파일 (#ifdef, #ifndef, #else, #endif)
프리프로세서 명령문은 컴파일하기 전에 소스 코드를 전처리하는 데 사용됩니다. 명령문은 항상 #로 시작하므로 컴파일러는 변수, 함수 등의 이름에 기호를 사용할 수 없습니다.
각 명령문은 별도의 항목으로 설명되며 줄 바꿈까지 유효합니다. 한 항목에는 여러 명령문을 사용할 수 없습니다. 지시어 입력이 너무 크면 '\' 기호를 사용하여 여러 줄로 구분할 수 있습니다. 이 경우 다음 행은 명령문 입력의 연속으로 간주됩니다.
전처리기 조건부 컴파일 지침을 사용하면 특정 조건의 충족 여부에 따라 프로그램의 일부를 컴파일하거나 건너뛸 수 있습니다.
이 조건은 다음 포맷 중 하나를 사용할 수 있습니다.
#ifdef identifier
|
#ifndef identifier
|
모든 조건부 컴파일 지시문은 #else 명령문을 포함하고 #endif로 끝나는 가능한 모든 줄의 뒤에 올 수 있습니다. 확인된 조건이 참이면 #else와 #endif 사이의 선이 무시됩니다. 확인된 조건이 충족되지 않으면 확인 및 #else 지시문(또는 전자가 없는 경우 #endif 지시문) 사이의 모든 줄이 무시됩니다.
예제:
#ifndef TestMode
|
프로그램 유형 및 컴파일 모드에 따라 표준 매크로는 다음과 같이 정의됩니다.
__MQL5__ 매크로는 *.mq5 파일을 컴파일할 때 정의되며, __MQL4__ 매크로는 *.mq4 파일을 컴파일할 때 정의됩니다.
_DEBUG 매크로는 디버그 모드에서 컴파일할 때 정의됩니다.
_RELEASE 매크로는 릴리즈 모드에서 컴파일할 때 정의됩니다.
예제:
//+------------------------------------------------------------------+
|