0

我在项目中收到来自以下第三方代码的叮当警告:

uLong x ;
int i;
int err;

err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i); d
x = (uLong)i; // <- CLANG: Assigned value is garbage or undefined

因此,为了摆脱这个错误,我想将 i 的初始化更改为:

int i = 0;

这会导致任何意想不到的后果吗?我想在不搞砸任何事情的情况下压制这个警告。

4

1 回答 1

3

我认为您可以将其更改为int i = 0;.

根据您的代码,初始i变量未初始化,因此它可能包含任意值,即垃圾。

我不知道,甚至编译器也不知道,函数unzlocal_getByte实际上会改变i变量的值,所以它会警告你i变量可能的不确定状态。

无论如何,先前初始化i变量不会使情况变得更糟。

于 2013-01-24T07:48:42.807 回答