次のコードを書き直そうとしています。
$ cat t.c
int main()
{
unsigned int i = 0;
int v = 3;
i |= v;
return 0;
}
最近の gcc を使用すると、次の警告が表示されます。
$ gcc -Wconversion t.c
t.c: In function ‘main’:
t.c:5:3: warning: conversion to ‘unsigned int’ from ‘int’ may change the sign of the result [-Wsign-conversion]
コードの読みやすさを維持しながら、この警告を回避するには、ビットごとの OR をどのように書き直すべきですか。unsigned int i
はライブラリ コードの奥深くにあるため、これを int に変更することはできません。