assert 断言的不同编译器行为
2016-07-10 02:01
260 查看
在VC下边,assert 断言自动在release 版本下失效;但是在gcc 下边,需要
#define NDEBUG
#include <assert.h>在包含 <asser.h> 头文件之前定义 NDEBUG 宏。
另外,在assert( expr )中的 expr 表达式中不要有状态的改变,因为在release 版本忽略 expr 表达式的执行,会造成 debug 和 release 版本的程序状态不一致。
#define NDEBUG
#include <assert.h>在包含 <asser.h> 头文件之前定义 NDEBUG 宏。
另外,在assert( expr )中的 expr 表达式中不要有状态的改变,因为在release 版本忽略 expr 表达式的执行,会造成 debug 和 release 版本的程序状态不一致。
相关文章推荐
- 质数因子
- 19.[LeetCode]Remove Nth Node From End of List
- 使用AccessibilityService带你自动安装软件以及自动添加微信好友
- Android四大组件之一ContentProvider 的详细讲解及使用
- Eclipse中的Android项目导入Android Studio的操作方法
- 组合数学相关
- python 引用和对象理解
- 进制转换
- 二叉查找树
- c语言的基本数据类型
- django1.9学习之投票系统第一课时
- Codeforces Round #360 (Div. 2) D. Remainders Game 中国剩余定理
- HashMap的三种遍历方法 2
- 文章标题
- 第九次课总结
- 遍历HashMap的三种方法
- c 语言的标准输入输出,scanf,printf
- winxp下安装mysql5.7提示mysqld.exe不是有效的win32文件
- HashMap循环遍历方式及其性能对比
- 线性代数运算