Fir*_*his 11 c++ divide-by-zero
出于测试原因,我想在我的C++代码中将除以零.我写了这段代码:
int x = 9;
cout << "int x=" << x;
int y = 10/(x-9);
y += 10;
Run Code Online (Sandbox Code Playgroud)
我看到屏幕上印有"int = 9",但应用程序没有崩溃.是因为一些编译器优化(我用gcc编译)?可能是什么原因?
GMa*_*ckG 17
制作变量volatile.对volatile变量的读写操作被认为是可观察的:
volatile x = 1;
volatile y = 0;
volatile z = x / y;
Run Code Online (Sandbox Code Playgroud)
Nul*_*ion 14
因为y没有被使用,它正在被优化掉.
尝试cout << y在最后添加一个.
或者,您可以关闭优化:
gcc -O0 file.cpp
Run Code Online (Sandbox Code Playgroud)