카테고리 없음
[C언어] #error
s뽈록이s
2013. 7. 15. 11:39
#ifndef UNICODE #error This program require unicode environment #endif
프로그램 실행화면
#error 전처리문은 지정한 에러 메시지를 출력하고 전처리 과정에서 컴파일을 중지하도록 한다. 에러 메시지는 메시지 창에 출력되는데 비주얼 C++의 경우 Output창에 나타난다.
단독으로 사용되는 경우는 없으며 주로 조건부 컴파일 지시자와 함께 사용되어 컴파일 불가능한 상황임을 개발자에게 알려 주는 역할을 한다.
유니코드로 컴파일되고 있는 상황이 아니면 이 모듈은 컴파일을 거부하며 #error 이후는 컴파일되지 않는다.
코드 중에 반드시 유니코드가 필요한 부분이 있는데 현재 상황이 그렇지 못하다면 오동작하도록 내버려두는 것보다 컴파일을 거부하여 개발자가 환경을 맞춘 후 다시 컴파일하도록 유도하는 것이 훨씬 더 좋은 방법이다.
이 문장의 사용 위치는 어디든 상관없으나 보통 소스 선두에 둔다. 운영체제의 버전이 맞지 않다거나 개발툴이 부적합하다거나 할 때도 #error 전처리문을 사용한다.
자신이 만든 모듈을 혼자만 쓴다면 굳이 이렇게까지 할 필요는 없겠지만 불특정 다수가 사용할 예정이라면 안전을 위해 이 모듈이 컴파일될 수 있는 상황을 명확하게 알려 주는 것이 좋다.
컴파일 조건을 문서에 적어 놓거나 주석으로 기록할 수도 있겠지만 모든 개발자가 문서를 꼼꼼하게 읽어보지 않기 때문에 이런 강제적인 에러 메시지 출력문이 필요하다.