初始化int有没有副作用?

时间:2013-01-24 07:33:43

标签: c clang

我的项目中的以下第三方代码收到了警告:

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;

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

1 个答案:

答案 0 :(得分:3)

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

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

我不知道,甚至编译器也不知道,函数unzlocal_getByte实际上是否会更改i变量的值,因此它会警告您i可能的不确定状态变量

在任何情况下,先前初始化i变量都不会使情况变得更糟。