C4458 警告 - 如何查找使用的变量



我需要将一个旧项目移植到最新的视觉工作室,但它有一些非常糟糕的代码,我不知道如何解决。

如果有这个功能:

void CBuffer::AddData( LPBYTE lpData, u_long uDataSize, u_long &uRemnant )
{
int cb;
LPBYTE ptr  = GetWritableBuffer( (int *)&cb );
cb  = ( cb < uRemnant? cb: uRemnant );
ASSERT( ptr + cb <= m_lpBufMax );
memcpy( (void*)ptr, &lpData[uDataSize - uRemnant], cb );
m_pTail = ptr + cb;
uRemnant    -= cb;
}

哪些提示

buffer.cpp(90): warning C4458: declaration of 'cb' hides class member

这里int cb覆盖u_long由类CBuffer定义的CB。

有没有办法知道在此之后应该使用哪个 cb?

LPBYTE ptr  = GetWritableBuffer( (int *)&cb );

局部变量总是隐藏类成员变量或全局变量。因此,在此方法中,始终使用局部变量int cb

最新更新