Системное программирование С++ / Rust
Алексей Москаленко, C++ / Python / Rust / Linux / FinTech · 20.06
Модели данных
Рассмотрим С++ код: 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
Вадим Черенёв
· 21.06
Интересно, найдется тут хотя бы кто-то имеющий доступ к системе с int отличным от 32 бит?
ответить
Вадим Черенёв
26.07
Ну ок, кроме меня.
ответить
еще контент автора
Алексей Москаленко
C++ / Python / Rust / Linux / FinTech · 21.02
Алексей Москаленко
C++ / Python / Rust / Linux / FinTech · 06.02 · ред.
Системное программирование С++ / Rust
Алексей Москаленко, C++ / Python / Rust / Linux / FinTech · 19.07
Что выведет код на С++? Особенности работы ссылок
Системное программирование С++ / Rust
Алексей Москаленко, C++ / Python / Rust / Linux / FinTech · 03.07
Виртуальная память в Linux
Системное программирование С++ / Rust
Алексей Москаленко, C++ / Python / Rust / Linux / FinTech · 21.06
Dead lock
еще контент автора
Системное программирование С++ / Rust
Алексей Москаленко, C++ / Python / Rust / Linux / FinTech · 20.06
войдите, чтобы увидеть
и подписаться на интересных профи