通常、コンパイラの警告の背後にある理由は理解できますが、これは明らかに間違っているようです。
#include <stdint.h>
uint8_t myfunc(uint8_t x,uint8_t y)
{
x |= y;
return x;
}
-Wall を使用した Intel コンパイラは次のように文句を言います。
conversion from "int" to "uint8_t={unsigned char}" may lose significant bits
x |= y;
^
これは正しいですか?上記のコードは移植性がなく、何らかの形で非標準ですか?