Модели данных

Рассмотрим С++ код: std::cout << sizeof(int); Что он выведет?

Правильный ответ - это Implementation defined код, то есть код, результат выполнения которого зависит от среды, в которой он выполняется (а именно от модели данных)

Модель данных

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

Примеры моделей данных

LP64 (используется в большинстве UNIX систем) -- модель данных, в которой типы LONG, LONG LONG и тип указателя занимают 64 бита

LLP64 (используется в Windows64) -- модель данных, в которой типы LONG занимает 32 бита, а LONG LONG и тип указателя занимают 64 бита

Таблица содержит список основных моделей данных

Почему стандарт языка С++ не определяет точный размер типов int, long ?

С используется в программах, где критически важна производительность (ПО для ракет, самолетов, биржевые роботы, где нужно максимально быстро принимать решение), С работает на разных архитектурах

С++ использует размеры типов (модели данных) систем на которых выполняется для достижения максимальной производительности (скорости работы).

А если Вам нужны целочисленные типы фиксированного размера, то используйте библиотеку <cstdint> https://en.cppreference.com/w/cpp/header/cstdint

Модели данных | Сетка — новая социальная сеть от hh.ru
repost

480

input message

напишите коммент

· 21.06

Интересно, найдется тут хотя бы кто-то имеющий доступ к системе с int отличным от 32 бит?

ответить

26.07

Ну ок, кроме меня.

ответить

еще контент автора

еще контент автора

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь