C标准库——assert.h

assert.h中制定义了assert函数。代码很少,但是必须注意其对NDEBUG的回应。

使用时只需要加入assert.h的头文件然后就可以进行断言。

例子:

//#define  NDEBUG
#include <assert.h>

int main(){
         int a=10;
         int b=9;
         assert(a<b);
         return 0;
}



这里不满足断言假设,所以程序停止。

但是将第一行的注释去掉后,就相当定义了NDEBUG也就是取消断言功能这时时候断言执行空,所以断言不起作用。

其内部实现框架:

#undef assert
#ifdef NDEBUG
#define assert(test) ((void) 0)
#else
#define assert(test) ...
#endif

你可能感兴趣的:(c,框架)