C 또는 C++에서 (#) 기호로 표시된 다른 행을 찾았습니다. 이를 전처리 지시문이라고 합니다. 이 라인은 코드를 컴파일하기 전에 전처리 단계에서 처리됩니다. 여기에서는 세 가지 유형의 전처리 지시문을 볼 수 있습니다. 이들은 -
- 조건부 컴파일
- 라인 컨트롤
- 오류 지시문
때때로 우리는 프로그램에서 일부 매크로를 정의합니다. 조건부 컴파일 지시문 사용. 매크로가 정의되었는지 여부를 확인할 수 있습니다. 우리는 또한 그들을 통제할 수 있습니다. 따라서 하나의 매크로가 정의되어 있으면 어떤 작업을 수행하고, 그렇지 않으면 이와 같은 다른 작업을 수행하십시오.
조건부 컴파일 지시문은 #ifdef-#elif-#else-#endif와 같습니다. 모든 #ifdef 블록은 #endif로 끝나야 합니다. #elif 또는 #else는 선택 사항입니다.
예시
#include <iostream> #define MY_MACRO 10 using namespace std; int main() { #ifdef MACRO cout << "MACRO is defined" << endl; #elif MY_MACRO cout << "MY_MACRO is defined, value is: " << MY_MACRO; #endif }
출력
MY_MACRO is defined, value is: 10
라인 제어 지시문은 #line을 입력하여 사용됩니다. 때때로 우리는 선호하는 줄 번호에 약간의 오류가 있습니다. 이 지시문을 사용하여 줄 번호를 업데이트할 수 있습니다. 이것을 배치하고 현재 행을 200으로 변경하면 그 후 행은 201부터 이동합니다.
예시
#include <iostream> using namespace std; int main() { cout<< "Current line is: " << __LINE__ << endl; #line 200 cout << "Hello" << endl; cout << "World" << endl; cout<< "Current line is: " << __LINE__ << endl; }
출력
Current line is: 5 Hello World Current line is: 202
error 지시자는 컴파일하기 전에 오류를 표시하는 데 사용됩니다. 하나의 매크로가 정의되어야 하지만 정의되지 않은 경우 오류 메시지가 표시될 수 있다고 가정합니다. #error를 사용하여 수행할 수 있습니다.
예시
#include <iostream> using namespace std; int main() { #ifdef MY_MACRO cout << "MY_MACRO is defined, value is: " << MY_MACRO; #else #error MY_MACRO should be defined #endif }
출력
#error MY_MACRO should be defined