assert-tutorial/0.md

40 lines
812 B
Markdown
Raw Normal View History

2024-05-13 10:15:58 +08:00
# 观察
首先来看一段代码,这段代码可能和你平常写的也差不多,但是也有一些区别
2024-05-13 10:18:12 +08:00
```c
#include <assert.h>
int main(void) {
int a = 3;
int b = 5;
assert(a + b == 8);
}
```
2024-05-13 10:15:58 +08:00
编译运行它,结果是什么都没有,这说明没有问题,那么如果不小心打错了呢,比如你是复制粘贴的第四行只改了变量名
2024-05-13 10:18:12 +08:00
``` C
#include <assert.h>
2024-05-13 10:15:58 +08:00
2024-05-13 10:18:12 +08:00
int main(void) {
int a = 3;
int b = 3;
assert(a + b == 8);
}
```
2024-05-13 10:15:58 +08:00
2024-05-13 10:18:12 +08:00
那么很快,当你运行时,程序就会提示你预先认为的`a + b == 8`并不成立,导致出错的代码是`/app/example.c`他的行数是`7`。
2024-05-13 10:15:58 +08:00
```
我们把 /app/example.c:7 叫位置信息
其中/app/example.c是文件名
7是行数
有了这两个就可以精确定位出问题的代码附近
```