代码之家  ›  专栏  ›  技术社区  ›  DigitalZebra

GCC支持long long int吗?

  •  14
  • DigitalZebra  · 技术社区  · 15 年前

    GCC是否支持:

    long long int
    

    哪个是64位整数?

    而且,是 long long int 标准的一部分?

    7 回复  |  直到 12 年前
        1
  •  32
  •   Alex B    15 年前

    是的,GCC支持 long long int 是C99标准的一部分。

    该标准不要求其大小以位为单位,但要求的值为 LLONG_MIN LLONG_MAX 在里面 <limits.h> 意味着 至少 64位 准确的 64位宽的整数类型是 int64_t / uint64_t <stdint.h> )。

    1. 龙龙敏 必须至多 -9223372036854775807
    2. llong_最大值 必须至少是 9223372036854775807
        2
  •  10
  •   Chris Lutz    15 年前

    long long int 是C99标准的一部分,我知道GCC支持它。 And now I can prove it.

        3
  •  8
  •   Mark Rushakoff    15 年前

    在我的32位机器上,

    int main()
    {
        printf("%d\n", sizeof(long long int));
        return 0;
    }
    

    编译用 gcc 打印8个(8字节*8位/字节=64位)。

        4
  •  5
  •   DigitalRoss    15 年前

    对, long long 是C99的一部分,以及 长长 常量(常数) 10222333444555LL )以及一些支持元素。( LLONG_MAX , llrint(d) , llround(d) 以及GCC已经实施了一段时间。

        5
  •  5
  •   eyalm    15 年前

    要打印long long int变量:

    long long int lli = 100000000;
    
    printf("%lld\n", lli);
    
        6
  •  5
  •   Lee B    15 年前

    长期的支持是很好的,而且已经很长时间了[对不起]。据我所知,在64位平台上应该是128位的,但是出于兼容性/可移植性的原因,GCC已经在64位宽度上实现了标准化。

    另请参见:(u)int128_t,和此 discussion on GCC's 128-bit integer support

        7
  •  2
  •   Marc W    15 年前

    我相信通常 unsigned long long 是64位整数的传统表示形式。我假设 long long int 也可以,但我个人从未见过任何64位的var以这种方式声明过。