扩展整数类型的示例?

ov2*_*v2k 6 c

从C99开始,C支持实现定义的扩展整数类型(6.2.5 p7)。是否有任何实现实际上实现了扩展整数类型?

我知道gcc的__int128,目前被视为语言扩展,在gcc的实现定义的行为(J.3.5)文档中并未正式列出为扩展的整数类型。在clang或MSVC的文档中找不到任何提及的内容。Solaris声明没有扩展的整数类型。

什么是“扩展整数类型”上有一些相关讨论,但提到的唯一其他候选对象是__int64在旧版本的MSVC中,并且注释似乎同意这不是正式的扩展整数类型,因为该版本的MSVC为C90。

chu*_*ica 2

扩展整数类型的示例?
是否有任何实现实际上实现了扩展整数类型?

各种处理器都有 24 位宽度的指令和常量内存。

支持此类 Microchip 处理器的编译器提供 (u)int24_t

添加到 C99 的 int24_t 类型 现在,当使用 C99 库且 CCI 未激活时,可以使用 int24_t 和 uint24_t 类型(以及现有的 __int24 和 __uint24 类型)。


尽管某些编译器确实提供 128 位整数类型,但如果该类型是扩展整数类型,则 C 库将要求(u)intmax_t至少具有该宽度。C11dr 7.20.1.5

C 还要求“预处理器算术在intmax_t/uintmax_t”中完成。

我怀疑提供intN(N > 64) 的编译器将其作为语言扩展

我知道不(u)int128_t存在编译器(作为扩展整数类型)。