아틴
Atin
아틴
전체 방문자
오늘
어제
  • 분류 전체보기 (460)
    • Devlopment (246)
      • 정리 글 (20)
      • MicroServices (0)
      • Reactive, Concurrenc.. (12)
      • Java (44)
      • Spring (20)
      • C,C++,Ruby,Python (52)
      • Mobile (39)
      • Web (35)
      • Tip & Info (14)
      • Unit Test (7)
    • Infra (44)
      • OS (21)
      • RDBMS (13)
      • NoSQL&Cache (5)
      • AWS (4)
    • Computer Science (11)
    • Etc (156)

블로그 메뉴

  • Home
  • Guestbook

공지사항

인기 글

태그

  • Dungeons & Dragons
  • TRPG
  • Linux
  • 정읍
  • mysql
  • javascript
  • Java
  • Python
  • CSS
  • 아이폰
  • 해킨토시
  • Android
  • 안드로이드
  • Ruby on Rails
  • 자바
  • 던젼 앤 드래곤즈
  • 전라도
  • C
  • 여행
  • jsp

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
아틴

Atin

Devlopment/C,C++,Ruby,Python

[VC++] Debug모드와 Release모드

2010. 4. 15. 17:41
반응형
Visual Studio에는 Debug모드와 Release모드가 있다.
Debug 모드로 실행할 경우에는 _DEBUG 라는 매크로가 정의된다.

6에서는 메뉴의 [Build] > [Set Active Configuration]에서 설정할 수 있다.
2008 에서는 메뉴의 [Build] > [구성 관리자]에서 선택하거나 툴바에서 선택할 수 있다.

그래서 다음과 같은 코드를 작성할 수 있다.


   #ifdef _DEBUG
    // Debug 모드 코드
  #else
    // Release 모드 코드
  #endif



그러다가 이것을 활용한 아이디어를 Yagur님의 블로그에서 보게 되었다.
(출처 : http://yagur.impon.net/entry/C%EC%9D%98-ifdef-DEBUG-%EB%8C%80%EC%9A%A9-%EB%A7%A4%ED%81%AC%EB%A1%9C)

코드는 다음과 같다.

#    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()
{
    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*/

    return 0;
}


이게 참 신기한게 /##/ 를 통해서 뒤의 줄을 주석처리해준다. 참신한 아이디어다.

반응형
저작자표시 (새창열림)

'Devlopment > C,C++,Ruby,Python' 카테고리의 다른 글

[VC++] 구조체 패킹과 패딩 비트  (1) 2010.08.25
[VC++] 'symbol' 외부 기호(참조 위치: 'function' 함수)에서 확인하지 못했습니다.  (0) 2010.07.22
[VC++] vcvars32.bat 및 nmake.exe파일 위치  (0) 2010.06.18
[VC++] Visual Studio 6에서 include 경로 추가  (0) 2010.06.17
[VC++] CString -> char 변환  (0) 2010.04.21
[VC++] 레지스트리 삭제 (저장된 설정 삭제 방법)  (0) 2010.04.13
[VC++] 비트맵 출력  (0) 2010.04.13
[VC++] 맵 사용방식  (0) 2010.04.09
[VC++] Extern과 Const  (0) 2010.04.07
[VC++] 스레드(Thread) 동기화  (0) 2010.04.01
    'Devlopment/C,C++,Ruby,Python' 카테고리의 다른 글
    • [VC++] Visual Studio 6에서 include 경로 추가
    • [VC++] CString -> char 변환
    • [VC++] 레지스트리 삭제 (저장된 설정 삭제 방법)
    • [VC++] 비트맵 출력
    아틴
    아틴

    티스토리툴바