#include <stdio.h>
static int foo(){}
int main(){
if (foo()) {
printf("OK\n");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我不太确定是否中止这一点,而且我在ISO/IEC 9899:1999 (E)中还没有找到任何解释。也许我错过了。那么,if(foo())UB属于这种情况吗?
我用gcc7.3 aarch64-linux进行测试。
-O0: 打印 OK
- O1to -O3: 不打印任何内容