小编hum*_*ean的帖子

为什么使用 C 的断言函数会跳过对其前面的条件的求值?

我使用 C 的assert.h assert函数的方法与此类似:

\n
int x = 3;\n\nif (x == 3)\n    printf("x is 3 \xe2\x9c\x85");\n\nassert(x != 3);\n
Run Code Online (Sandbox Code Playgroud)\n

当运行它时,我发现该if语句被完全跳过,并且程序在到达该assert语句时终止。不用说,在我找到罪魁祸首之前,这在我的程序中造成了一些极其讨厌的错误。这可能是什么原因造成的?为什么条件被完全跳过?如果没有被跳过,那么为什么里面的代码没有被执行呢?我在这里设置了一个在线示例。

\n

c

2
推荐指数
1
解决办法
79
查看次数

标签 统计

c ×1