在Visual C++ C4723警告描述中,"潜在除零"是什么意思?

sha*_*oth 0 c++ compiler-construction compiler-warnings visual-c++

当我在Visual C++ 10中编译以下代码时

int _tmain(int /*argc*/, _TCHAR* /*argv*/[])
{
    int len = strlen( "" );
    if( len / 0 ) {
        rand();
    }
}
Run Code Online (Sandbox Code Playgroud)

编译器发出C4723警告 电位除以零.

什么是潜在的意思吗?我的C++代码清楚地说"除以len零",分裂潜力如何?

http://msdn.microsoft.com/en-us/library/8kd039eh.aspx

Rom*_* R. 13

MSDN文章很清楚,编译器在编译时已将操作数评估为零.所以potential这里意味着编译器不确定只有一件事 - 这个代码是否会被执行.

  • @RoeeGavirel即使它是main()中的第一个语句,也不能保证代码将运行(例如,全局静态构造函数可以终止进程).您的编译器实际上甚至不知道程序的入口点. (2认同)