The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выравнивание данных (linux, gcc)"
Отправлено Crou, 30-Июн-11 17:51 
> union {
>     intmax_t i;
>     long double ld;
>     void *p;
> };
> Ее sizeof есть максимальная граница выравнивания для ISO C99.

Можно и так, но, думаю, можно обойтись просто sizeof(void*). Главная цель: чтобы при обращении к данным (структурам и массивам) из некоторой области shared memory, отображённой в адресное прастранство процесса, процесс обращался к корректным адресам. Т.е. чтобы в отображённом куске shared memory начала структур и массивов имели корректные адреса. Например, на arm'ах (может не на всех, точно не знаю) запрещено обращаться к нечётным адресам, arm генерит исключение при обращении к нечётным адресам. Может linux и умеет разруливать такие ситуации на arm, но не хотелось бы тратить на это процессорное время. Лучше софтину написать с учётом таких особенностей. Думаю, выравнивание данных до размера, кратного sizeof(void*), достаточно и универсально для всех современных архитектур. По крайней мере, для тех трёх, что я указал выше, точно подойдёт.

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру