C++中的空算术
void arithmetic in C++
本文关键字:C++ 更新时间:2023-10-16
>我有一个结构:
struct {
Header header;
uint32_t var1;
uint32_t var2;
char var3;
char var4[4];
};
你得到了提示。问题是我通过网络接收字节数组,我首先必须解析标头。所以我首先解析标头,然后我必须解析结构的其余部分。
我试过了
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 *
。
相关文章:
- 没有找到相关文章