C 什么是「;扩展整数类型“;?
引用我正在读的书中的话:C 什么是「;扩展整数类型“;?,c,gcc,c99,C,Gcc,C99,引用我正在读的书中的话: signed char、signed short int、signed int、signed long int、signed long long int称为标准有符号整数类型 unsigned char、unsigned short int、unsigned int、unsigned long int、unsigned long long int、\u Bool称为标准unsigned char 整数类型 除了标准整数类型外,C99标准还允许实现定义的扩展整数类型,包括
signed char、signed short int、signed int、signed long int、signed long long int
称为标准有符号整数类型unsigned char、unsigned short int、unsigned int、unsigned long int、unsigned long long int、\u Bool
称为标准unsigned char
整数类型我对第三点有意见。这些“扩展整数类型”是什么?任何示例?扩展整数类型是作为扩展提供的特定于实现的整数类型。因为几乎所有关于这些扩展的内容都是实现定义的,所以标准不能对它们做太多说明。然而,一个C++09提案提供了一个框架,用于以一种不干扰标准兼容程序行为的方式实现此类扩展
您应该参考,它涵盖了扩展整数类型的所有内容。扩展整数类型的一个示例是MS Visual C定义的
\uu int64
64位有符号整数类型。虽然此类型显然是一个整数类型,但在旧版本的MSVC中,它不能作为int
,长int
,获得,norlong-long-int
。(同时,MSVC增加了对long-long-int
的支持。)错误:“long-long”对于GCC来说太长。这不是最好的例子,因为MSVC
是c90,而c90没有扩展的整数类型。它们是在c99中引入的。@ouah很好。我想更正确的说法是引入了扩展整数类型来涵盖这种情况。注意:gcc可能定义的\uuuu int128
也不是扩展整数类型,因为@J.F.Sebastian感谢链接。我想知道这是否是对GCC定义了\uuuu int128
的平台的文档监督。除文档另有声明外,它具有扩展整数类型的所有特性:它实现整数运算,它不是标准整数类型之一的别名,它有符号和无符号两种类型,它具有固定宽度,并且以二进制表示。如果它看起来像鸭子…@user4815162342:sizeof(intmax\u t)
可能小于gcc上的sizeof(\uu\u int128)
。它排除了\uuu int128
是扩展整数类型的可能性。