Moh*_*awy 1 c++ runtime-error visual-studio-2010 visual-c++ runtimeexception
我正在使用Microsoft Visual C++ 2010,我有以下代码,其中我将1除以0,如您所见
#include <cstdio>
int main()
{
int x;
x = 0;
1/x;
while (1) {
std::printf("RUNNING!!\n");
}
}
Run Code Online (Sandbox Code Playgroud)
并且令人惊讶的是我没有发现任何运行时错误,程序继续执行并显示RUNNING !!
所以我的问题为什么"1/x"不被认为是运行时错误,为什么程序不停止?
相反,为什么你认为应该有运行时错误?没有规定要求这样做.
除以零是不明确的.在这种情况下似乎,因为它可以在编译时捕获,您的编译器只是忽略操作...很可能是因为您从未使用过它的"结果".
所以,这个程序运行并可能没有输出:
int main()
{
int x = 0;
1/x;
}
Run Code Online (Sandbox Code Playgroud)
虽然我可以期望这个程序导致系统级算术异常:
#include <iostream>
int main()
{
int x = 0;
int y = 1/x;
std::cout << y << '\n';
}
Run Code Online (Sandbox Code Playgroud)
通常,当您有未定义的行为时,不要指望任何事情.不要指望你的程序"工作",不要指望它产生有意义的输出,不要指望它不打电话给你的前妻并取消你的宠物鸡的合法监护权,并且不要指望它会造成你想要的错误.
| 归档时间: |
|
| 查看次数: |
600 次 |
| 最近记录: |