GCC是否支持long long int?

GCC是否支持:

long long int 

这将是一个64位整数?

还有, long long int标准的一部分是什么?

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

该标准没有LLONG_MIN要求其大小,但LLONG_MINLLONG_MAX所需的值意味着它至少为 64位( 确切的 64位宽整数类型是来自 int64_t / uint64_t )。

  1. LLONG_MIN必须至多为-9223372036854775807
  2. LLONG_MAX必须至少为9223372036854775807

long long int是C99标准的一部分,我知道GCC支持它。 现在我可以certificate这一点。

在我的32位机器上,

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

gcc打印8(8字节* 8位/字节= 64位)。

是的, long long是C99的一部分,以及long long常量( 10222333444555LL )和一些支持元素。 ( LLONG_MAXllrint(d)llround(d) ,其他一些。)gcc已经实现了一段时间了。

为了打印long long int变量:

 long long int lli = 100000000; printf("%lld\n", lli); 

很长的时间都得到了很好的支持,并且已经很长时间了[抱歉]。 据我所知,这应该是64位平台上的128位,但出于GCC的兼容性/可移植性原因,已经标准化为64位宽度。

另请参阅:(u)int128_t,以及关于GCC的128位整数支持的讨论

我相信通常unsigned long long是64位整数的传统表示。 我假设long long int也会工作,但我从来没有亲眼见过任何64位变量。