Перейти к содержанию
    

Выравнивание структуры

Доброе утро.

 

У меня есть arm LPC2106.

Я новичок.

Подскажите как выровнять структуры по 1 байту.

struct as {
 char tm;
  int tmp;
}

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

WinARM это GCC, следовательно например вот так

 

typedef struct
{
    char tm;
    int tmp;
}__attribute__ ((packed)) _t_as_;

_t_as_ as;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще можно так :

 

#pragma pack(push, 1)

struct S {

unsigned char a;

void *p;

unsigned char b;

}

#pragma pack(pop)

 

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще можно так :
WinARM это настолько древний gcc, что не знал еще такой прагмы и молча игнорировал ее. Появилась она совсем недавно. А автору вопроса можно заодно посоветовать заменить компилятор из WinARM на более современную версию.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

WinARM это настолько древний gcc, что не знал еще такой прагмы и молча игнорировал ее. Появилась она совсем недавно. А автору вопроса можно заодно посоветовать заменить компилятор из WinARM на более современную версию.

 

Launchpad потдерживает только Cortex.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Launchpad потдерживает только Cortex.
Правда? Я, пока вы не сказали, его и для Cortex и для ARM7TDMI использовал. И программы работают.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Правда? Я, пока вы не сказали, его и для Cortex и для ARM7TDMI использовал. И программы работают.

 

Наверное я не правильно понял содержимое следующего топика

https://answers.launchpad.net/gcc-arm-embed...question/193998

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...