NDEBUG宏
概要:
#define NDEBUG //宏定义。 #undef NDEBUG //删除宏定义。
描述:
该宏会影响宏assert的行为。
该宏是<assert.h>头文件引用的宏,但不是<assert.h>头文件中定义的宏。如果在包含<assert.h>头文件时,NDEBUG已定义成宏名,宏assert将定义成以下形式:
#define assert(ignore) ((void)0)
每次包含<assert.h>头文件时,宏assert会根据宏NDEBUG的当前状态重新定义。
范例:
|
|
输出:
Assertion failed: i != 5, file E:\cTest\ndebug.c, line 18
程序执行时,第11行中的断言将被忽略;第18行中的断言将被测试。
相关内容:
assert | 程序调试时测试断言的宏。 |
static_assert | 程序编译时测试断言的宏。 |