为什么在 C++ 的 using 声明语句中使用逗号分隔列表是一种不好的做法?
例如
using std::cout;
using std::cin;
using std::endl;
Run Code Online (Sandbox Code Playgroud)
被认为比代码更好
using std::cout,std::cin,std::endl;
Run Code Online (Sandbox Code Playgroud)
如果代码包含逗号分隔的 using 声明列表,一些编译器(例如 gcc)甚至会发出警告。
当然,最好的做法是对标识符使用完全限定的名称。
我遇到了一些 C++ 代码,就像
if(((unsigned int)0-1)>0)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
并且程序执行了 if 块中的语句。出于好奇,我在 c 中尝试了相同的方法,它也做了同样的事情。我的理解是,如果 if 条件中的表达式返回 bool 值 true,则会执行 if 块中的语句。这意味着 ((unsigned int)0-1)>0 必须返回真。为什么会这样?