일부 ASSERTION 코드에 부작용이 있다고 의심됩니다. 내 코드를 컴파일하는 방법을 변경하지 않고 ASSERT를 해제하고 싶습니다. MSVS2008을 사용하고 있습니다. 디버그에서 릴리스로 전환하는 것은 메모리가 초기화되는 방식을 변경하므로 수행하지 않습니다.C++에서 ASSERT (x)를 해제하려면 어떻게합니까?
5
A
답변
6
는 아무것도로 확장되도록 어설 션 마르코을 재정의
#undef assert
#define assert(x) ((void)0)
.
6
assert
을 의미하는 경우 NDEBUG 매크로로 제어해야합니다.
cassert
를 포함하면 나)
cassert
의 흠 후 헤더 파일의 상단에이를 넣어
+1
NDEBUG도 메모리 초기화를 변경합니다. – jbcoe
관련 문제
- 1. Python에서 레지스트리 리디렉션을 해제하려면 어떻게합니까?
- 2. ViewGroup에서 화면을 강제로 해제하려면 어떻게합니까?
- 3. ASSERT 대 ATLASSERT 대 assert
- 4. Rhino Mocks : "Assert"vs. "Assert"
- 5. XStream에서 불필요한 이스케이프 기능을 해제하려면 어떻게합니까? 기본적으로
- 6. eclipse에서 프로젝트의 JavaScript 지원을 해제하려면 어떻게합니까?
- 7. 특정 컨트롤에 대한 viewstate를 해제하려면 어떻게합니까?
- 8. 디자인 타임에 사용자 지정 IValueConverter를 해제하려면 어떻게합니까?
- 9. Visual Studio 2010 스크립트 디버깅을 해제하려면 어떻게합니까?
- 10. Spring Roo에서 예외 변환을 해제하려면 어떻게합니까?
- 11. Visual Studio 2008에서 스냅을 해제하려면 어떻게합니까?
- 12. 프로젝트의 매핑을 해제하려면 어떻게해야합니까?
- 13. 체인 중 ABCpdf 단락 들여 쓰기를 해제하려면 어떻게합니까?
- 14. .wav 파일에 할당 한 메모리를 해제하거나 해제하려면 어떻게합니까?
- 15. 특정 malloc 된 배열 요소를 올바르게 해제하려면 어떻게합니까?
- 16. 내 C 소스 파일에서 경고를 일시적으로 해제하려면 어떻게합니까?
- 17. 고정 영역에 내장 된 데이터 토큰을 해제하려면 어떻게합니까
- 18. EF 4.1 RC의 DbContext 수준에서 변경 내용 추적을 해제하려면 어떻게합니까?
- 19. Visual Studio 2010 테스트 프로젝트에서 섀도 복사본을 해제하려면 어떻게합니까?
- 20. ASP.NET 차트 컨트롤에서 x 축 레이블을 해제하려면 어떻게합니까?
- 21. Excel 2007의 VBA에서 자동 고침 기능을 해제하려면 어떻게합니까?
- 22. Umbraco의 TinyMCE 편집기에서 코 드디 티를 해제하려면 어떻게합니까?
- 23. SQL Server 2005에서 sa 계정의 잠금을 해제하려면 어떻게합니까?
- 24. fusecompress/lzo로 압축 된 파일의 압축을 해제하려면 어떻게합니까?
- 25. Visual Studio 2005에서 메모리 누수 로깅을 해제하려면 어떻게합니까?
- 26. Intellij IDEA의 특수 효과에 대한 오류 검증을 해제하려면 어떻게합니까?
- 27. 옵션 레이블을 사용할 때 Html.DropDownList()에서 유효성 검사를 해제하려면 어떻게합니까?
- 28. resharper에서 "확장 메서드를 일반 정적으로 변환"자동 리팩터링을 해제하려면 어떻게합니까?
- 29. Assert 사용자 입력은 대문자입니다.
- 30. junit4 assert methods
내가 잘못하지 않으면 어설 션 (프로그램 종료)이 해제되지만 평가에서 제외되고 제거되지 않습니다. 아마도 :'#define assert (x) (void) 0'? – UncleBens
@UncleBens Ak, 당신 말이 맞지만'(void) 0'은 필요하지 않습니다. 그러나'(x)'는 있습니다. – Yacoby
@ Yacoby : 일반적으로 문장을 확장하면 어설 션 등이 도움이되기 때문에 필요합니다. 예를 들어,'assert'가 해제 모드에서 아무것도 확장하지 않으면'if (foo) assert (bar); else assert (baz);'는 빈 if 및/또는 else 절에 대해 경고 할 수 있습니다. C 표준의 최신 초안은 적어도 * 내장 된 어설 션이 그렇게 구현되어야한다고 요구합니다. –