这个简短的c程序有一个除零错误。
#include <stdio.h>
int main( int argc, const char* argv[] )
{
printf( "start\n" );
int x = 0;
printf("%d", 2/x);
printf("end\n");
}
当我使用cl /Od /Zi /EHsc main.c
进行编译并在控制台中运行它时,输出只是“开始”。没有错误消息或弹出窗口,也没有有关该错误的任何信息。如果我在可视代码调试器中运行它,则会将除数除以零。我还使用tcc对其进行了编译,并且完全相同。
这是正常行为吗?如果可以的话,我至少可以显示除数为零的情况(在调试器之外)。如果没有,我的Windows 10机器上的内容可能会阻止显示错误?
编辑:只是为了清楚起见:
我以为我会看到类似"Unhandled exception at 0x00f5144b in main.exe: 0xC0000094: Integer division by zero."
(或类似内容)的东西,当我取消引用空指针时,也会发生同样的事情,该程序只是停止而没有错误消息。