[an error occurred while processing this directive] [an error occurred while processing this directive]
Этот способ плох. (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено nKam 08 апреля 2002 г. 15:39
В ответ на: Ответ: Если делать красиво и есть возможность и желание немного подправить, то можно так, отправлено trainer 08 апреля 2002 г. 14:27

Компилятор не обязан помещать данные в структуре монолитно, более того он этого почти никогда не делает, а выполняет выравнивание.

На 16 и, тем более, 32bit чипе это решение работать не будет.
На 8bit - вероятно будет.

Если переставить char в конец структуры, то почти наверняка выравнивание не выполниться, но не факт.

Наиболее правильным и красивым с точки зрения идеологии Си будет явное преобразование указателя в нужный тип (char * или unsigned char *).

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru