哪些gcc版本支持_int128内部类型?

哪些gcc版本支持_int128内部类型?,gcc,128-bit,extended-precision,Gcc,128 Bit,Extended Precision,整数下面是: 作为扩展,整数标量类型\uuu int128适用于整数模式宽度足以容纳128位的目标。 只需为有符号128位整数编写\uuuu int128,或为无符号128位整数编写无符号int128 GCC中不支持为具有 小于128位宽的长整数 我想知道什么gcc版本增加了对这种类型的支持,或者是否有一个宏可以直接用于测试它的存在。不确定第一个版本,但您可以测试\uuuuuuuSizeof\uInt128\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

整数下面是:

作为扩展,整数标量类型
\uuu int128
适用于整数模式宽度足以容纳128位的目标。 只需为有符号128位整数编写
\uuuu int128
,或为无符号128位整数编写
无符号int128

GCC中不支持为具有 小于128位宽的长整数


我想知道什么gcc版本增加了对这种类型的支持,或者是否有一个宏可以直接用于测试它的存在。

不确定第一个版本,但您可以测试
\uuuuuuuSizeof\uInt128\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

git log --reverse --grep='__int128'
查看提交消息中该词的首次出现

这让我们想到:这意味着:

Add __int128 keyword.
然后列出包含提交的所有标记:

git tag --contains 6388cfe24f7ecbdc2ba2d4c80638ea6c95ba07c2
最早的是:

gcc-4_6_0-release

TODO:前面提到的
\uu int128\t
我也不理解。AMD64的
\uuuuuInt128
\uInt128\uT
之间的区别是什么?

通常情况下,\uT后缀表示类型定义,\uuuuuuuuuuuuuuuuuuuu前缀表示为编译器保留,\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;我猜,uuu int128是编译器支持的最终本机类型,而u int128\t是一个临时的黑客,他们不再使用。搜索
uu int128
不起作用,因为在较旧的gcc版本上它是
uu int128\u t
。自年以来,已支持128位int