gpt4 book ai didi

c++ - w8004 编译器警告 BDS6 c/c++

转载 作者:行者123 更新时间:2023-11-30 03:12:11 24 4
gpt4 key购买 nike

最佳做法是在声明时初始化变量。

int TMyClass::GetValue()
{
int vStatus = OK;
// A function returns a value
vStatus = DoSomeThingAndReturnErrorCode();
if(!vStatus)
//Do something
else
return(vStatus);
}

在 Debug模式下,像这样的语句 int vStatus = OK; 在 DEBUG MODE 构建期间不会导致任何问题。

在 RELEASE MODE 中构建时相同,抛出警告说:

w8004: 'vStatus' is assigned a value that is never used.

此外,我在我的代码中使用相同的变量,在相同的函数中,如 if(!vStatus) 并且我还返回了 return(vStatus) 的值;

当我在网上查看 pointers on this debug Vs Release 时,编译器希望您在声明变量时对其进行初始化。

我在 Windows 2003 服务器上使用 Borland developer studio 6。

任何指示都会帮助我理解这个问题。

谢谢

拉吉

最佳答案

您将 vStatus 初始化为 OK,然后立即分配一个新值。

您应该使用您将要使用的值来初始化 vStatus,而不是这样做。

请尝试执行以下操作:

int TMyClass::GetValue()
{
// A function returns a value
int vStatus = DoSomeThingAndReturnErrorCode();
if(!vStatus)
//Do something
else
return(vStatus);
}

编辑:一些说明。

初始化一个变量,只是从不使用该值,然后为该变量分配另一个值是低效的。在您的情况下,您只使用 int 并不是真正的问题。但是,如果为您的类型创建/复制/赋值的开销很大,那么这些开销可能会消耗性能,尤其是当您经常这样做时。

基本上,编译器试图帮助您找出并指出程序中可以改进代码的地方

关于c++ - w8004 编译器警告 BDS6 c/c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1399692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com