C++의 #ifdef _DEBUG 대용 매크로.
작성자: yagur rev: 1
_D는 디버깅시 실행할 코드이고 _R은 릴리즈시 실행할 코드입니다.
_R/*, _R*/는 릴리즈시 해당 블럭을 주석처리 하는 것입니다. 디버깅시엔 주석처리 되지 않습니다. 디버깅 코드를 항상 주석처리로 보이게 하고싶으신분께 약간 흥미로울수도 있겠군요. 반대로 _D/* , _D*/ 로 사용하실수도 있습니다.
결과는 대충 예측하지만, 컴파일후 실행결과가 정확히 어떤지 궁금하신분은 아래 더보기를 누르세요.
# define __SLASH(x) /##x
# define __DOUBLE_SLASH __SLASH(/)
#ifdef _DEBUG
# define _D
# define _R __DOUBLE_SLASH
#else
# define _D __DOUBLE_SLASH
# define _R
#endif
int main(const int iArg, char* ppArg[])
{
printf("Hello ");
_D printf("Debug Mode\n");
_R printf("Release Mode\n");
_R/*
printf("Another Debugging code Start\n");
printf("That code ends here!!\n");
_R*/
getch();
return 0;
}
# define __DOUBLE_SLASH __SLASH(/)
#ifdef _DEBUG
# define _D
# define _R __DOUBLE_SLASH
#else
# define _D __DOUBLE_SLASH
# define _R
#endif
int main(const int iArg, char* ppArg[])
{
printf("Hello ");
_D printf("Debug Mode\n");
_R printf("Release Mode\n");
_R/*
printf("Another Debugging code Start\n");
printf("That code ends here!!\n");
_R*/
getch();
return 0;
}
_D는 디버깅시 실행할 코드이고 _R은 릴리즈시 실행할 코드입니다.
_R/*, _R*/는 릴리즈시 해당 블럭을 주석처리 하는 것입니다. 디버깅시엔 주석처리 되지 않습니다. 디버깅 코드를 항상 주석처리로 보이게 하고싶으신분께 약간 흥미로울수도 있겠군요. 반대로 _D/* , _D*/ 로 사용하실수도 있습니다.
결과는 대충 예측하지만, 컴파일후 실행결과가 정확히 어떤지 궁금하신분은 아래 더보기를 누르세요.
더보기
'개발 > 조각코드' 카테고리의 다른 글
| C++의 #ifdef _DEBUG 대용 매크로. (1) | 2008/10/23 |
|---|---|
| 명시적 반복문 한계치 지정 매크로 for C/C++, 혹은 무한 루프 방지 (0) | 2008/10/02 |
Trackback : http://yagur.impon.net/trackback/149
-
C++의 #ifdef _DEBUG 대용 매크로
| 2010/07/21 16:49
ㅁ










Recent Comment