dim*_*mba 5 c++ scope coding-style declaration
只是在工作中与同事交谈如何声明变量.对我来说,我已经决定了我喜欢哪种风格,但也许我错了.
"C"风格 - 功能开始时的所有变量.如果你想知道变量的数据类型,只需看一下函数的开头即可.
bool Foo()
{
PARAM* pParam = NULL;
bool rc;
while (true)
{
rc = GetParam(pParam);
... do something with pParam
}
}
Run Code Online (Sandbox Code Playgroud)
"C++"样式 - 将变量声明为尽可能本地.
bool Foo()
{
while (true)
{
PARAM* pParam = NULL;
bool rc = GetParam(pParam);
... do something with pParam
}
}
Run Code Online (Sandbox Code Playgroud)
你喜欢哪个?
更新 问题是关于POD变量.
Kla*_*aim 13
第二个.(C++风格)至少有两个很好的理由:
如果由于您使用的语言的原因,您需要在函数顶部声明变量,那么显然您必须这样做。
如果您可以选择,那么在使用变量的地方声明变量会更有意义。我使用的经验法则是:声明具有所需的最小范围的变量。
减小变量的范围可以防止某些类型错误,例如,您意外地在循环外部使用了仅应在循环内部使用的变量。减小变量的范围将使编译器能够发现错误,而不是让代码在运行时编译但失败。