假设我有以下字节数组:
uint8_t barr[4] = {0xCE, 0xCE, 0xCE, 0xCE};
Run Code Online (Sandbox Code Playgroud)
给定索引n,我希望能够读取两个字节:
uint16_t d16 = barr[0];
Run Code Online (Sandbox Code Playgroud)
并且必须d16等于
0xCECE
Run Code Online (Sandbox Code Playgroud)
也许标准库中有一个可以执行此类任务的功能?
一块蛋糕:
memcpy(&d16, barr + n, sizeof(d16));
Run Code Online (Sandbox Code Playgroud)
不要尝试转换指针或使用unions.这些都是未定义的行为,或者可能是陷阱陷阱表示.memcpy()是"规范"解决方案(正如C++ boost库所做的那样).
| 归档时间: |
|
| 查看次数: |
907 次 |
| 最近记录: |