Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 什么是「;扩展整数类型“;?_C_Gcc_C99 - Fatal编程技术网

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 整数类型
  • 除了标准整数类型外,C99标准还允许实现定义的扩展整数类型,包括有符号和 没有签名。例如,编译器可能提供有符号和无符号 128位整数类型

  • 我对第三点有意见。这些“扩展整数类型”是什么?任何示例?

    扩展整数类型是作为扩展提供的特定于实现的整数类型。因为几乎所有关于这些扩展的内容都是实现定义的,所以标准不能对它们做太多说明。然而,一个C++09提案提供了一个框架,用于以一种不干扰标准兼容程序行为的方式实现此类扩展


    您应该参考,它涵盖了扩展整数类型的所有内容。

    扩展整数类型的一个示例是MS Visual C定义的
    \uu int64
    64位有符号整数类型。虽然此类型显然是一个整数类型,但在旧版本的MSVC中,它不能作为
    int
    长int
    ,获得,nor
    long-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
    是扩展整数类型的可能性。