私はこのtypedefを持っています:
typedef union
{
unsigned Value;
unsigned Timestamp:16;
} BITFIELD;
そして、このコンパイラの警告を受け取ります。
BITFIELD bitfield;
// read from uninitialised memory - may result in unexpected behaviour
bitfield.Timestamp = 12;
これで、ビットフィールドの代わりにshortを使用すると、警告が消えます。
typedef union
{
unsigned Value;
unsigned short Timestamp;
} DATATYPE;
この警告についてどう考えるかわかりません-わかりません。初期化されていないメモリや読み取り操作もありません。IMHOコンパイラ(VisualDSP ++ 5.0 C / C ++コンパイラ)はここでは間違っています。Timestamp:32
にビットフィールドを使用すると、警告も消えます。
気づかなかったことはありますか?この警告を安全に無視できますか?