【发布时间】:2016-06-02 07:08:42
【问题描述】:
作为头文件中结构(我们称之为 ASM)的一部分,声明了四个 uint32_t int。
uint32_t Result1;
uint32_t Result2;
uint32_t Result3;
uint32_t Result4;
我想像这样访问这些:ASM->Result1, ASM->Result2 等并将它们组合成一个 128 位 int,其中 Result1 是左侧的 0-31 位,所以最后我会有:
return 128bitint = Result1Result2Result3Result4;
如何做到这一点?
【问题讨论】:
-
应该用什么数据类型保存它们?
-
我认为即使
unsigned long long也只有 64 位...也许您可以考虑使用 char 数组来保存这些结果:char a[16]; -
有一个 GCC 扩展,它定义了
__int128,一个 128 位整数类型,也可以是无符号的。但是,我不知道它的便携性或 OP 是否可以访问 GCC。