728x90

#ifndef 2

C, C++] 조건부 컴파일

조건부 컴파일은 정해진 조건에 따라서 코드의 컴파일 여부를 제어하는 전처리기. WinAPI용 코드를 리눅스에서 사용 제한하게 하는 것처럼 특정 플랫폼이나 OS에 특화된 코드를 구분하는 경우.디버깅이나 테스트 코드 용도로 추가된 코드를 구분하는 경우. #ifdef or #if/#elif/#else, 그리고 #endif를 이용하여 조건부 컴파일을 사용할 수 있음. #ifdef 매크로/* 코드 */#elif defined 매크로/* 코드 */#else/* 코드 */#endif #if 값 or 식/* 코드 */#elif 식/* 코드 */#else/* 코드 */#endif #if defined 매크로/* 코드 */#endif defined를 사용하면, #if를 사용했을 때보다 복잡한 조건을 사용할 수 있으며, 가..

C,C++] 조건 컴파일 문

헤더 파일을 작성하고 이용할 때 주의해야하는 부분이 있다. 클래스나 함수가 선언된 헤더 파일을 여러 차례 include 하면, 중복 선언으로 인해서 컴파일 오류가 발생할 수 있다는 점이다. 헤더파일을 이용하는 main.cpp에서 A라는 헤더 파일을 여러 차례 include하는 경우는 극히 드물겠지만, 문제는 다른 헤더 파일 B와 C에서 이미 헤더 파일 A를 내부적으로 include한 경우 일일이 헤더파일을 확인하는 방법 외에는 중복 선언을 방지할 방법이 없다. 제대로 숙지하지 못한 상태에서, A, B, C를 연달아 include하는 경우, 결국 헤더 파일 A의 중복 선언이 두 차례 발생해 컴파일 오류를 발생시킬 것이다. 이 문제를 해결해주는 것이 바로 조건 컴파일 문이라는 것이다. 헤더 파일을 작성하는 ..

728x90