#undef THIS_FILE ...이게 먼가여? |
|
---|
#undef THIS_FILE
기존에 THIS_FILE이 정의 되었을시 다시 재 정의 하겠다는 뜻입니다.
__FILE__은 ANSI가 정의한 미리 정의된 매크로로서 현재 소스 파일의 이름과 행 번호를
의미하는 매크로 입니다.
ex) 1.cpp라는 소스파일로 저장했을시
printf(""%s\n",__FILE__);
하면 결과는
%PATH%1.cpp라는 결과를 얻게 됩니다.
__FILE__ 는 이러한 특성상 디버그용으로 많이 쓰입니다.
하지만, 문제점이 있는데 __FILE__경우 a.cpp b.cpp
중 a.cpp가 #include b.cpp했을 경우 매크로의 확장 후에 컴파일 되기 때문에
__FILE__이 있을 경우 결과값이 b.cpp가 아닌 a.cpp를 나타내는 오류를 범하게 됩니다.
결국 이러한 현상을 막기위해 static 동적 char THIS_FILE[]=__FILE__; 로 만들어 이러한
오류가 나지 않게 합니다.
MFC를 사용할경우 자동으로 생성한 각 cpp파일에 디버깅 모드의 정적 변수로 THIS_FILE이 정의 되어 있기 때문에 별로 신경 안쓰셔도 될겄 같습니다.
출처 : 윈도우 프로그래머를 위한 MFC 구조와 원리
'C, C++ 문법' 카테고리의 다른 글
int *&a; 의 의미 (1) | 2008.09.03 |
---|---|
DLL - 함수 호출시 __declspec(dllimport)의 사용과 미사용간 코드생성 차이점 (0) | 2008.09.02 |
__declspec( selectany ) declarator (0) | 2008.09.02 |
문자열(스트링) 전격 분석 (0) | 2008.09.01 |
논리상 생성자에서 처리해도 되는 것을 Init 함수를 따로 빼서 사용하는 이유 (0) | 2008.08.27 |
* 헝가리언 표기법(Hungarian notation) (2) | 2008.08.27 |
C++ 심화학습 (0) | 2008.07.29 |