我有一个功能foo(unsigned __int128)
。如何将类型的文字传递unsigned __int128
给函数?我的尝试:
foo(0xFFFFFFFFFFFFFF23FFFFF); //Truncated (expected)
foo(0xFFFFFFFFFFFFFFF01FFFu); //Truncated (expected)
foo(0xFFFFFFFFFFFFFFF23FFFFull); //Truncated
foo((unsigned __int128)0xFF45FFFFFFFFFFFFFFFFFull); //Truncated
如您所见,它们都被截断了。我如何向 GCC 发出信号,表明文字是unsigned __int128
?
编辑: gcc 手册说:
GCC 不支持为具有小于 128 位宽的 long long 整数的目标表示 __int128 类型的整数常量
这是否意味着我不能编写(无符号)__int128 类型的文字?
有替代品吗?