我想在 C 中定义一个结构用于网络传输,例如我想传输一个 Animal 结构,其中包含可变长度的动物名称。
AFAIK,一种方法是using a predefined length of char array
,或者using a buffer
在结构中,我们可以解析缓冲区(例如,前4个字节是动物名称长度,后面是动物名称,以及其他字段的长度和其他字段的值),优势后一种方法的最大特点是它允许变量名长度,如以下代码所示:
struct Animal
{
char name[128];
int age;
}
或者:
struct Animal
{
int bufferLen;
char* pBuffer;
}
我的问题是:我的方法正确吗?即,有标准的传输结构的方法,还有更好的方法吗?
我的第二个问题是:我是否需要注意填充,即使用#pragma pack(push/pop, n)
?
提前致谢!