gpt4 book ai didi

c++ - C++ 中的 void 算术

转载 作者:行者123 更新时间:2023-11-28 00:56:53 25 4
gpt4 key购买 nike

我有一个结构:

struct {
Header header;
uint32_t var1;
uint32_t var2;
char var3;
char var4[4];
};

你明白了。问题是我正在通过网络接收字节数组,我首先必须先解析 Header。所以我首先先解析头部,然后我必须解析其余的结构。

我试过了,

void* V = data;  // which is sizeof(uint32_t) * 2 + sizeof(char) * 5

然后尝试像 (V)、V+sizeof(uint32_t) ... 等那样解析它

但它给出了编译器错误。我如何通过网络解析该结构的其余部分?

最佳答案

C++ 中的基本数据单位是 char。它是可以寻址的最小类型,根据定义它的大小为 1。此外,语言规则特别允许将所有数据视为字符序列。所有 I/O 都以字符序列(或流)的形式发生。

因此,您的原始数据缓冲区应该是一个char 数组。

(另一方面,void * 在 C++ 中有非常具体和有限的用途;它的主要目的是指定一个对象在内存中的地址。例如, operator new() 的结果是一个 void *。)

关于c++ - C++ 中的 void 算术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10612118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com