0

プロジェクト内の次のサードパーティコードから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;

それは意図しない結果を引き起こしますか?私は何も台無しにせずにこの警告を押しつぶしたいと思います。

4

1 に答える 1

3

に変更できると思いますint i = 0;

コードによると、最初はi変数が初期化されていなかったため、任意の値、つまりガベージが含まれている可能性があります。

私は知りませんし、コンパイラーも知りませんが、unzlocal_getByte実際にi変数の値を変更するように機能するので、変数の状態が不確定になる可能性があることを警告しますi

いずれにせよ、以前にi変数を初期化しても状況は悪化しません。

于 2013-01-24T07:48:42.807 に答える