最近、ネットワーク通信の両側のエンディアンが異なる場合に現れるバグを追跡しています。一方はすでにテレグラム マーキングを送信していますがlastSegment
、もう一方は最後のセグメントを際限なく待っています。
私はこのコードを読みました:
#ifndef kBigEndian
struct tTelegram
{
u8 lastSegment : 1;
u8 reserved: 7;
u8 data[1];
};
#else
struct tTelegram
{
u8 reserved: 7;
u8 lastSegment : 1;
u8 data[1];
};
#endif
int や long などのマルチバイト型にエンディアンが関係していることは知っています。lastSegment
およびreserved
1 バイト内にあります。
それはバグですか?