Типы данных "long int", "long long" - PullRequest
1 голос
/ 15 апреля 2010

Какова цель этих новых типов данных? Обычно я просто использую int или long, но почему они существуют? Какую новую функцию или цель они приносят?

Ответы [ 6 ]

5 голосов
/ 15 апреля 2010

long int всегда было полным именем long, используется редко.

long long существует некоторое время (в последнем стандарте C) и гарантирует размер как минимум 64 бита (long гарантирует только 32 бита).

0 голосов
/ 15 апреля 2010

Как уже упоминалось, эти типы не новы. Вас может заинтересовать этот обзор . В качестве дополнительного замечания, если вы не уверены в типах, вы также можете использовать intn_t types , которые имеют более четкое значение.

0 голосов
/ 15 апреля 2010

long int - это просто полная форма long, отличная от, например, unsigned long int и так далее. Это не ново в C ++ 0x.

long long часто встречается в компиляторах уже сегодня; для совместимости обычно long и int являются 32-битными даже на 64-битных архитектурах; long long указывает 64-битные в таких обстоятельствах; его часть C99 и должна быть не менее 64 бит в соответствии с этим стандартом.

Вы также можете получить 128-битные типы данных на некоторых компиляторах, используя long long long; другие компиляторы предоставляют такие числа, используя атрибуты (например, GCC имеет __attribute__((__mode__(__TI__))))), а большинство имеют <limits.h>, который имеет __int128_t / __uint128_t.

0 голосов
/ 15 апреля 2010

Вероятно, чтобы привести C ++ в соответствие с C99, который его поддерживает (и привести стандарт в соответствие с тем, что компиляторы на самом деле поддерживают, так как большинство из них уже поддерживают long long).

0 голосов
/ 15 апреля 2010

Ну, очевидно, «длинный длинный» даже длиннее, чем «длинный». :)

Различие зависит от платформы: "long long" может быть 64-разрядным целым числом, когда "long" является 32-разрядным или они оба могут быть 64-разрядными. Что касается «long int», это просто длинный способ сказать «long», без каламбура.

0 голосов
/ 15 апреля 2010

Ну, они дают больший диапазон целых чисел, так что компьютеры могут легко обрабатывать, например, налоговые декларации Билла Гейтса.

Кстати, long int совсем не нов, но большинство людей просто используют более короткий вариант long.

Ищите их продолжение в готовящемся проекте новых стандартов ISO:

longer long      - slightly larger than a long long (this was initially put
                   forward as "long long long" but the ISO committee barfed).
even longer long - bigger yet.
stupendous long  - should keep us going for a while.

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