assert(expression)
,判断表达式 expression
。
如果注释掉 #define NDEBUG
,assert 语句被触发。
q@ubuntu:~$ ./a.out
a.out: assert_test.c:13: main: Assertion `KEY==11' failed.
Aborted (core dumped)
q@ubuntu:~$ cat assert_test.c
// #define NDEBUG
#include <stdio.h>
#include <assert.h>
#define KEY 10
#if KEY==10
#define A "A"
#else
#define B "B"
#endif
int main()
{
assert(KEY==11);
printf("%s\n", A);
}
q@ubuntu:~$ ./a.out
A
q@ubuntu:~$ cat assert_test.c
#define NDEBUG
#include <stdio.h>
#include <assert.h>
#define KEY 10
#if KEY==10
#define A "A"
#else
#define B "B"
#endif
int main()
{
assert(KEY==11);
printf("%s\n", A);
}