LINUX.ORG.RU

История изменений

Исправление KivApple, (текущая версия) :

Размеры указателей вроде по стандарту могут различаться только для указателей на функции от указателей на что-угодно остальное. Размеры указателей на примитивы и структуры одинаковы для как минимум конкретного экземпляра программы, а то и всего бинарника для конкретной архитектуры и конкретных опций компиляции.

То есть C не даёт никаких гарантий, что указатель будет 16 или 32 или 64 бита, скажем. Но если в одном месте одной и той же программы указатель 32 бита, то во всех других местах все указатели на всё, кроме функций, тоже должны иметь такой же размер.

Разумеется, не учитываем какие-нибудь нестандартные расширения языка типа __attribute__ (те кто их используют, читают документацию к ним отдельно), а только базовый синтаксис (то есть программист не использует ничего нестандартного, у чего в документации к конкретному компилятору указано какое-то влияние на размер указателей).

Исходная версия KivApple, :

Размеры указателей вроде по стандарту могут различаться только для указателей на функции от указателей на что-угодно остальное. Размеры указателей на примитивы и структуры одинаковы для как минимум конкретного экземпляра программы, а то и всего бинарника для конкретной архитектуры и конкретных опций компиляции.

То есть C не даёт никаких гарантий, что указатель будет 16 или 32 или 64 бита, скажем. Но если в одном месте одной и той же программы указатель 32 бита, то во всех других местах все указатели на всё, кроме функций, тоже должны иметь такой же размер.

Разумеется, не учитываем какие-нибудь нестандартные расширения языка типа __attribute__ (те кто их используют, читают документацию к ним отдельно), а только базовый синтаксис (то есть программист не использует ничего нестандартного, у чего в документации указано какое-то влияние на размер указателей).