太仓建设银行网站,重庆装修论坛,要建设网站,网站备案期间做什么assert作用#xff1a;我们使用assert这个宏来调试代码语法#xff1a;assert#xff08;bool表达式#xff09;如果表达式为false#xff0c;会调用std::coutabort函数#xff0c;弹出对话框#xff0c;#includeiostream
#includecassert
void…assert作用我们使用assert这个宏来调试代码语法assertbool表达式如果表达式为false会调用std::coutabort函数弹出对话框#includeiostream
#includecassert
void main()
{int x 0;assert(x);system(pause);
}弹出的对话框特别注意*ssert使用前必须包含头文件cassert特别注意*基本上所有的编译器在release模式下assert都不能使用debug模式下这个宏才有效才可以使用当我们不想用assert的时候可以使用#define NDEBUG但是一定要放在头文件cassert之前#includeiostream
#define NDEBUG
#include cassert
void main(int b)
{int x 0;assert(x);system(pause);
}这里assert就不会执行我们打开NDEBUG看下里面左键选择NDEBUG-右键-查看所有引用#ifdef NDEBUG#define assert(expression) ((void)0)#else............第一句意思是如果定义了NDEBUG就让assert定义为空的意思即assert不执行static_assert静态断言是在程序编译阶段有效动态断言即assert是在程序运行的时候有效语法static_assert(表达式字符串)当表达式为false时会输出字符串特别注意*表达式必须是一个常量不能是变量因为static_assert是在编译阶段生效而编译阶段变量的值无法确定因为变量可以被不同的方法调用从而可能引起值的改变所以它不确定常量的值可以确定。例static_assert(sizeeof(int*)4,x64)这段代码含义是如果int*大小不是4字节那么就会输出x64