﻿# От чего зависит размер указателя в C\+\+ на различных платформах?

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

Однако на большинстве современных ОС общего назначения \(настольные UNIX совместимые системы, MS Windows\) используются модели данных, в которых размер указателя соответствует разрядности адресной шины у архитектуры этих платформ\. Ширина шины адреса определяет объём адресуемой памяти\. Например, если ширина адресной шины составляет 32 бит, и размер слова памяти равен одному байту \(минимальный адресуемый объём данных\), то объём памяти, который можно адресовать, составляет 2^32 байт, что и определяет оптимальный размер указателя для такой платформы\.

## Библиографический список

1. Assembla\.com\. [Type sizes\.](https://app.assembla.com/spaces/zsync-windows/wiki/types_sizes)
1. Обсуждение на Stackoverflow\.com\. [Why the size of a pointer is 4bytes in C\+\+?](https://stackoverflow.com/questions/2428765/why-the-size-of-a-pointer-is-4bytes-in-c) 
1. Терминология\. [Модель данных\.](https://pvs-studio.ru/ru/blog/terms/0012/)
1. Андрей Карпов\. [Что такое size\_t и ptrdiff\_t\.](https://pvs-studio.ru/ru/blog/posts/cpp/a0050/)
1. База знаний\. [Почему 64\-битные операционные системы используют для адресации только 48\-битные адреса](https://pvs-studio.ru/ru/blog/posts/k0042/)