重新解释C中的转换,从C+迁移代码+;到c# 我想将C++中的以下代码迁移到C<
我的问题就在这里, 我怎样才能在c#中做到这一点重新解释C中的转换,从C+迁移代码+;到c# 我想将C++中的以下代码迁移到C<,c#,c++,C#,C++,我的问题就在这里, 我怎样才能在c#中做到这一点 uint64\u t matchid=*重新解释强制转换(result.data()); uint64\u t outcomeId=*重新解释(result.data()+8); uint16\u t tokenId=*重新解释强制转换(result.data()+16); 结果一定是这样 matchId:3203527750019186923, 结果编号:3203531838828052697, 令牌ID:13431 谢谢代码中有一个std:
uint64\u t matchid=*重新解释强制转换(result.data());
uint64\u t outcomeId=*重新解释(result.data()+8);
uint16\u t tokenId=*重新解释强制转换(result.data()+16);
结果一定是这样
matchId:3203527750019186923,
结果编号:3203531838828052697,
令牌ID:13431
谢谢代码中有一个
std::array result
。在C语言中,它将是一个字节[]结果
因此:
uint64_t matchid = *reinterpret_cast<uint64_t*>(result.data());
uint64_t outcomeId = *reinterpret_cast<uint64_t*>(result.data() + 8);
uint16_t tokenId = *reinterpret_cast<uint16_t*>(result.data() + 16);
ulong matchId = BitConverter.ToUint64(result, 0);
ulong outcomeId = BitConverter.ToUint64(result, 8);
ulong tokenId = BitConverter.ToUint64(result, 16);