如何在D语言中将struct执行到ubyte []
或ubyte []
到struct,请兄弟帮忙解答这个问题,谢谢!
如果结构体包含 string
或 char []
怎么办?
例如,这样的结构:
struct UserLogin
{
align(1):
ushort ClientId;
int AccectId;
string LoginUid;
string LoginPwd;
}
注意我在socket中的应用!
最佳答案
要转换原始数据,建议的习惯用法是这样的:
struct_type* s = new struct_type;
ubyte[] ub = cast(ubyte[]) s[0..1];
struct_type* s2 = cast(struct_type*) ub.ptr;
但是,这不会处理字符串和指针的序列化。您需要手动或使用库来执行此操作。
关于d - struct to ubyte[] 或 ubyte[] to struct for d 语言,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9444814/