我有一个64位长的int,其中包含一些位域.我需要在第二个和第三个字节中存储一个16位有符号的int并将其添加到32位值.我正在使用这样的东西:
u32 Function( s32 value , u64 bitfield )
{
return value + (s16) (bitfield >> 8)
}
Run Code Online (Sandbox Code Playgroud)
我可以依赖编译器将位域转换为16位带符号的int,然后再将其扩展为32位带符号的int并执行添加吗?如果没有,我应该如何截断剩余的字节并执行我需要的类型转换?