C ++ вариант для Java долго? - PullRequest
2 голосов
/ 14 июля 2010

Существует ли вариант C ++ для примитивного типа данных long?
Размер C ++ long составляет всего 4 байта, а Java long - 8 байтов.

Итак: есть ли в C ++ недесятичный примитивный тип размером 8 байт?
Может быть, с некоторыми хитростями?

Спасибо

Ответы [ 3 ]

4 голосов
/ 14 июля 2010

Microsoft Visual C ++ определяет тип __int64, который эквивалентен типу long в Java.GCC имеет int64_t.Существует даже тип long long int, определенный в стандарте ISO C99, однако согласно стандарту он имеет ширину не менее 64 бит, но может быть шире.

Но помимо размератакже порядок байтов для рассмотрения.Стандарт Java предписывает порядок байтов с обратным порядком байтов, но в C порядок байтов AFAIK всегда зависит от платформы.

3 голосов
/ 14 июля 2010

C ++ имеет тип long long длиной 64 бита (на большинстве платформ).

1 голос
/ 15 июня 2017

Начиная с C ++ 11, в заголовке <cstdint> есть целочисленные типы фиксированной ширины .В вашем сценарии вы хотели бы использовать std::int64_t или std::uint64_t.

Поскольку это является частью спецификации языка C ++ 11, совместимость платформы и компилятора должна быть гарантирована.

...