我的项目中的以下第三方代码收到了警告:
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;
这是否会导致任何意外后果?我想在不搞砸的情况下压制这个警告。
答案 0 :(得分:3)
我认为您可以将其更改为int i = 0;
。
根据您的代码,最初i
变量未初始化,因此它可能包含任意值,即垃圾。
我不知道,甚至编译器也不知道,函数unzlocal_getByte
实际上是否会更改i
变量的值,因此它会警告您i
可能的不确定状态变量
在任何情况下,先前初始化i
变量都不会使情况变得更糟。