2012-12-28 3 views

답변

9

assert을 정의하는 헤더를 포함하기 전에 NDEBUG을 정의해야합니다. 당신이 NDEBUG을 정의함으로써에서.

3

주장을 비활성화 할 소스 파일의 상단에

#define NDEBUG 
#include <assert.h> 

을보십시오. 실제로는 명령 행에서 -D NDEBUG으로 컴파일하지 않을 것입니다. 자주 당신이 원하는대로 당신은 <assert.h>을 포함 할 수

// Non-critical code... 

#ifdef MYDEBUGOFF 
#define NDEBUG 
#endif 
#include <assert.h> 

// Critical function 

#undef NDEBUG 
#include <assert.h> 

// More non-critical code. 

: 프로파일 러는 은, 특정 기능의 점검을 감당할 같은 뭔가 기능을 쌀 수 없습니다 보여줍니다 때 당신은 그 자신의 디버그 명령을 정의하고한다 ; 매번 은 그 순간에 이 인지 여부에 따라 assert 매크로를 다시 정의합니다. 그래서 당신의 마음에 맞게 조절할 수 있습니다 콘텐츠; 헤더를 포함하기 전에 또는 #undef NDEBUG 번일 때마다 을 입력하십시오.

관련 문제