我正在将一些代码从 C 移植到 C++。在转换过程中我遇到:
uint128_t
没有命名类型
我的编译器:gcc 版本 5.2.1
我的操作系统:Ubuntu 15.1
这编译得很好,我认为它可以通过包含 stdint.h
来解决,但它没有。到目前为止,我还没有尝试任何其他方法,因为似乎没有很多关于此错误的信息( 示例)。 uint128_t
在整个程序中使用并且对于构建至关重要,因此我无法删除它,并且我不确定是否使用不同的整数类型。
以下是使用地点和方式的示例。
union {
uint16_t u16;
uint32_t u32;
uint128_t u128;
} value;
定义一个 uint128_t
或者我应该看看我的编译器是否可以?
原文由 Zimano 发布,翻译遵循 CC BY-SA 4.0 许可协议
GCC has builtin support for the types
__int128
,unsigned __int128
,__int128_t
and__uint128_t
(the last two are undocumented).使用它们来定义您自己的类型:或者,您可以使用
__mode__(TI)
:引用 文档:
十六字节 = 16 * CHAR_BIT >= 128。