静态断言可以在编译时就对程序的错误做出判断,而普通断言只能在程序运行出现错误的时候做出退出并产生调试信息 - 红黑联盟
可以使用NDEBUG来关闭静态断言:
#define NDEBUG //关闭静态断言
使用静态断言首先引用头文件:
#include <assert.h>
静态断言函数原型:
void assert(int expression);
expression可以是任何表达式或变量,如果为真则不报错,为假则报错。
自定义静态断言:
#define myassert(x)\ x为条件,\表示一个连接符,对下一行进行链接
if (!(x)) \
{\
printf("出错函数名为%s,文件名为%s,代码行号为%d",__FUNCTION__,__FILE__,__LINE__);\
}