一次设置一个字节的变量内容

时间:2017-03-29 08:14:25

标签: c++

我正在一次读取一个字节(字符)的消息,我想基于此设置变量的值。 有没有办法连接字节,然后使用强制转换来设置值?

类似的东西:

mytype packet = (mytype) byteconcat;

如果我是严格的字符串有一个额外的字节,那将是一个问题。

或者我可以创建变量并在收到它们时设置字节吗?

1 个答案:

答案 0 :(得分:1)

你可以使用联盟。

让我们假设您通过网络发送整数,在另一侧逐字节捕获它们。

您的工会可能如下所示:

union Data {
   unsigned char bytes[4];
   int val;
}

和这样的代码:

bool read(Data& outBuff, int& offset, unsigned char receivedByte)
{
   outBuff.bytes[offset++]= receivedByte;

   bool readyToRead = offset >= 4;
   if(readyToRead) {offset=0;}

   return readyToRead;
}