小编Chr*_*man的帖子

C4127:条件表达式是常量

以下代码在Visual Studio 2010中生成警告C4127(条件表达式是常量)(其中alias_wchar_t是wchar_t的别名):

if (sizeof(alias_wchar_t) == sizeof(wchar_t)) // warning occurs here
{
    // do stuff
}
else
{
    // do other stuff
}
Run Code Online (Sandbox Code Playgroud)

除了抑制警告之外,解决这个问题的最优雅方法是什么?

我想出的最好的解决方案是将条件填充到静态bool中,并将其用作条件.在if-else之上和之下都有大量的代码,所以我将整个东西包装在大括号中以尽可能地限制变量的范围:

// <snip>

{
    static bool isSameSize = (sizeof(alias_wchar_t) == sizeof(wchar_t));
    if (isSameSize)
    {
        // do stuff
    }
    else
    {
        // do other stuff
    }
}

// <snip>
Run Code Online (Sandbox Code Playgroud)

这感觉非常糟糕.这似乎应该在编译时而不是运行时可解析,但预处理器不知道sizeof.是否有更清洁,更优雅的方法来解决这个问题?

c++ visual-studio-2010 c4127

17
推荐指数
3
解决办法
1万
查看次数

当某些除数为NULL时,处理除数0错误

我正在除以0错误.我注意到有时我划分的字段是NULL.

(SUM(RentMonths * SQFT) / SUM(SQFT))
Run Code Online (Sandbox Code Playgroud)

当SQFT有时可以为空时,处理这种情况的正确方法是什么?我知道这可能是糟糕的数据,但除此之外; 我现在无法解决这个问题.

t-sql

1
推荐指数
1
解决办法
453
查看次数

标签 统计

c++ ×1

c4127 ×1

t-sql ×1

visual-studio-2010 ×1