assert.h、#if

阅读 74

2022-06-21

​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);
}


精彩评论(0)

0 0 举报