나는 C++ 코드를 가지고있다. g++ -D NDEBUG
옵션을 사용하여 코드를 컴파일하면 no assert 명령이 실행됩니다. 그러나 코드 #define NDEBUG
에 NDEBUG를 포함하고 컴파일하지 않고 -D NDEBUG
옵션을 지정하면 assert 명령이 실행됩니다. 명령 줄을 변경하지 않고 어설 션을 비활성화하는 방법?명령 줄을 변경하지 않고 어설 션을 비활성화하는 방법은 무엇입니까?
2
A
답변
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
번일 때마다 을 입력하십시오.
관련 문제
- 1. Eclipse에서 스칼라 어설 션을 비활성화하는 방법은 무엇입니까?
- 2. 전제 조건을 포함하여 Clojure 어설 션을 비활성화하는 방법은 무엇입니까?
- 3. 프로그래밍 방식으로 어설 션을 설정하는 방법은 무엇입니까?
- 4. 로그 파일에 어설 션을 보내는 방법은 무엇입니까?
- 5. regex에서 선택적 어설 션을 만드는 방법은 무엇입니까?
- 6. testunit에서 모든 어설 션을 집계하는 방법은 무엇입니까?
- 7. 개미에 어설 션을 활성화
- 8. SAML 어설 션을 사용합니다.
- 9. 어설 션을 활성화하는 방법?
- 10. 가장 좋은 방법은 SAML 어설 션을 보냅니다.
- 11. 저작권 기호를보기 위해 코드화 어설 션을 만드는 방법은 무엇입니까?
- 12. CQ5/OSGi 번들 (Java)에서 어설 션을 활성화하는 방법은 무엇입니까?
- 13. java netbeans에서 회색으로 변경하지 않고 java 버튼을 비활성화하는 방법은 무엇입니까?
- 14. AssertJ에서 어설 션을 어떻게 무효화합니까?
- 15. 어설 션을 사용해야하는 JUnit을 사용해야합니까?
- 16. 테마 appcelerator를 변경하지 않고 제목 표시 줄을 제거하는 방법은 무엇입니까?
- 17. SAML 어설 션을 사용하여 자바
- 18. GO : 목록에서 어설 션을 입력하십시오.
- 19. NSUInteger가 포함 된 ocunit 어설 션을 단순화하는 방법은 무엇입니까?
- 20. Selenium IDE의 모든 값에 대해 어설 션을 수행하는 방법은 무엇입니까?
- 21. Jmeter에서 SSO 로그인을 위해 어설 션을 제공하는 방법은 무엇입니까?
- 22. node.js의 navigator.id.get에서 반환 한 어설 션을 확인하는 방법은 무엇입니까?
- 23. Qt regexp에서 부정적인 lookbehind 어설 션을 에뮬레이션하는 방법은 무엇입니까?
- 24. JUnit 테스트에서 다중 어설 션을 피하는 방법은 무엇입니까?
- 25. SAML 어설 션을 통해 ACS에서 액세스 토큰을 얻는 방법은 무엇입니까?
- 26. vim에 제로 너비 어설 션을 쓰는 방법은 무엇입니까?
- 27. cython에서 컴파일 할 때 python 어설 션을 제거하는 방법은 무엇입니까?
- 28. 스크립트 어설 션을 사용하여 CDATA를 추출하는 방법은 무엇입니까?
- 29. 필수 필드 메시지에 대해 어설 션을 만드는 방법은 무엇입니까?
- 30. 디버그 모드에서 유닛 테스트에서 어설 션을 우회하는 방법은 무엇입니까?