c++ - Visual C++ C4723 警告描述中的 "potential divide by zero"是什么意思?

标签 c++ visual-c++ compiler-construction compiler-warnings

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

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

编译器发出 C4723 warning 可能被零除

这里的潜力是什么意思?我的 C++ 代码清楚地写着“将 len 除以零”,除法可能如何?

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

最佳答案

MSDN 文章清楚地表明,编译器在编译时已将操作数评估为零。所以这里的 potential 意味着编译器只不确定一件事——这段代码是否会被执行。

关于c++ - Visual C++ C4723 警告描述中的 "potential divide by zero"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7644821/

相关文章:

parsing - 编译器,找到语法的第一组

c++ - typedef 和模板的 undefined symbol ?

c++ - std::array<std::vector> 中的大括号省略

visual-c++ - 将 HWND 打印到消息框

c++ - Visual Studio 2010 中的动态和静态链接和部署

c++ - vs2010中的变量排列

c++ - 在 C++ lambda 表达式中按值捕获是否需要使用 lambda 对象复制值?

C++:清除对象 vector 的问题

c# - 回调函数 : passing callbacks from a C# winform app to a referenced VC++ Exe

compiler-construction - 是否可以将Scala程序编译为可在任何JVM上运行,而无需在给定机器上安装Scala?