Поддерживает ли GCC long long int? - PullRequest
14 голосов
/ 06 октября 2009

Поддерживает ли GCC:

long long int

Каким будет 64-разрядное целое число?

Кроме того, long long int является частью стандарта?

Ответы [ 7 ]

32 голосов
/ 06 октября 2009

Да GCC поддерживает long long int, который является частью стандарта C99.

Стандарт не устанавливает размер в битах, но требует значения LLONG_MIN и LLONG_MAX в <limits.h>подразумевается, что это как минимум 64-бит ( точное 64-битные целочисленные типы int64_t / uint64_t из <stdint.h>).LLONG_MIN должно быть не более -9223372036854775807

LLONG_MAX должно быть не менее 9223372036854775807
10 голосов
/ 06 октября 2009

long long int является частью стандарта C99, и я знаю, что GCC поддерживает его. И теперь я могу это доказать.

8 голосов
/ 06 октября 2009

На моей 32-битной машине

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

скомпилировано с gcc отпечатками 8 (8 байт * 8 бит / байт = 64 бита).

5 голосов
/ 06 октября 2009
Длинные строки

хорошо поддерживаются и были долгое время [извините]. Насколько я понимаю, это должно было быть 128-битным на 64-битных платформах, но по причинам совместимости / переносимости в GCC стандартизирован на 64-битной ширине.

См. Также: (u) int128_t, и это обсуждение поддержки 128-битного целочисленного значения GCC

5 голосов
/ 06 октября 2009

Чтобы напечатать длинные длинные переменные типа int:

long long int lli = 100000000;

printf("%lld\n", lli);
5 голосов
/ 06 октября 2009

Да, long long является частью C99, а также long long констант (10222333444555LL) и нескольких вспомогательных элементов. (LLONG_MAX, llrint(d), llround(d), некоторые другие.) И gcc уже некоторое время реализует это.

2 голосов
/ 06 октября 2009

Я считаю, что обычно unsigned long long является традиционным представлением 64-разрядного целого числа. Я предполагаю, что long long int тоже подойдет, но я никогда не видел, чтобы 64-битные переменные объявлялись таким образом раньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...