assert 断言的不同编译器行为

来源:互联网 发布:数控铣床编程熊图案 编辑:程序博客网 时间:2024/04/25 10:10

在VC下边,assert 断言自动在release 版本下失效;但是在gcc 下边,需要

#define NDEBUG#include <assert.h>
在包含 <asser.h> 头文件之前定义 NDEBUG 宏。

另外,在assert( expr )中的 expr 表达式中不要有状态的改变,因为在release 版本忽略 expr 表达式的执行,会造成 debug 和 release 版本的程序状态不一致。


0 0