在MSVC中使用多字符常量时是否可能会有警告? (类似于gcc中的-Wmultichar)。或者,如果还有其他解决方案可帮助您找到类似以下内容的代码,请告诉我。

在此代码上使用W4编译无法产生任何警告,而使用gcc可以生成-Wmultichar-Wtype-limits:

int main()
{
    std::string s = "hello";
    if (s[0] == 'he') {}
}

(我知道Wall,但是产生了很多警告,我没有去理它。)

最佳答案

仅在有限的上下文中–对于以下代码,有两个警告:

#include <iostream>

int main()
{
    char x = 'he';
    std::cout << x << '\n';
}



可以单独启用这些警告,而无需启用/W4/Wall

但是,对于您问题中的代码,即使使用/Wall,也没有适用的警告。

10-08 11:36