ntohl需要一个uint32_t. 我有许多不同成员(类型为uint32_tor uint16_t)的消息。是否可以正确传递整个收到的structorunion并将其转换为 sayuint32_t然后reinterpret_cast转换为 my unionor struct?
我的做法是逐行列出unionor的每个单独成员,struct然后像这样将其传递给 ntohl/s,msg.member = ntohl(msg.member);但这很麻烦!
数据结构从 C# .NET 应用程序 (Windows) 整体传输到 Linux 应用程序。
当我尝试时,
void* ptr = &msg;
uint32_t temp = (uint32_t)ptr;
编译器抱怨说:
错误:从 'void*' 转换为 'uint32_t' 失去精度