Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C/C++ 전처리기 지시문

<시간/>

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