这是在声明时初始化变量的最佳做法。w8004编译器警告BDS6 c/C++
int TMyClass::GetValue()
{
int vStatus = OK;
// A function returns a value
vStatus = DoSomeThingAndReturnErrorCode();
if(!vStatus)
//Do something
else
return(vStatus);
}
在调试模式,这样int vStatus = OK;
一个语句引起调试模式的构建过程中没有问题。
同样,当构建以发布模式,抛出一个警告说:
w8004:“VSTATUS”被分配一个是从未使用过的值。
而且,我在同样的功能进一步使用相同的变量了我的代码,这样if(!vStatus)
,也是我回报的return(vStatus);
值当我看着网页的pointers on this debug Vs Release,编译器期望你在声明它的时候初始化你的变量。
我正在使用Borland开发人员工作室6与Windows 2003服务器。
任何指针都会帮助我理解这个问题。
感谢
拉吉
推迟变量的定义(不是声明,BTW)是最好的实践,直到你有一些东西要初始化为止。看Glen的回答。这样你就没有未初始化的变量,并且你不需要用一些虚拟值来初始化变量,以便稍后重写它们。 – sbi 2009-09-09 13:42:49
REAL最佳实践是在具有初始化值的位置声明值,而不是在更早的位置。你早先宣布vStatus一行。因此,你假设一行将是“OK”。 – MSalters 2009-09-09 13:43:02