🔴 从哪一步开始不对的
(本条路线统一用 gcc -std=c11 -O0 -Wall 编译)把一段过程切成三步,每步都留个回执:
#include <stdio.h>
/* 定位 bug 的标准动作:把一段过程切成几步,每步留一个回执,
看是从哪一步开始不对的 */
static int step1(int x) { return x + 10; }
static int step2(int x) { return x * 2; }
static int step3(int x) { return x - 5; }
int main(void) {
int a = step1(1); /* 期望 11 */
int b = step2(a); /* 期望 22 */
int c = step3(b); /* 期望 17 */
printf("%d/%d/%d/%d\n", a, b, c,
(a == 11) + (b == 22) + (c == 17));
return 0;
}
全部评论