Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Переносимости не будет, но совсем не из-за выравнивания

Отправлено Сергей Борщ 22 марта 2007 г. 12:50
В ответ на: проконсультируйте по СИ - меня чайника в этом деле(+) отправлено <font color=gray>net_net</font> 21 марта 2007 г. 21:07

Выравнивание не при чем - у вас нет обращений к полям этой структуры по указателю. Все проблемы из-за того, что unsigned long имеет разный размер на разных платформах. Используйте

#include < stdint.h >
#pragma pack(1)

typedef struct
{
uint8_t command;
uint32_t packets;
uint8_t reserved[3];
} COMMAND2;

#pragma pack(1) стоит правильно, не забудьте после описания сруктуры поставить #pragma pack() чтобы вернуть выравнивание в исходное состояние.

Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 387:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru