Главная arrow Программирование arrow PC arrow gcc: заметки по использованию Monday, March 20 2023  
ГлавнаяКонтактыАдминистрированиеПрограммированиеСсылки
UK-flag-ico.png English Version
GERMAN-flag-ico.png Die deutsche Version
map.gif карта сайта
нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Поделиться:

gcc: заметки по использованию Версия для печати
Написал microsin   
01.11.2008

Свободный компилятор gcc на платформе Windows входит в состав пакета MinGW. Здесь я решил записать все интересное, с чем довелось столкнуться.

1. Тип int является 32-разрядным (4 байта), short - 16-разрядным (2 байта).

2. Порядок байт в слове - сначала идет младший байт, потом старший. Точно так же, как и у AVR gcc.

3. По умолчанию в структурах включено выравнивание переменных структуры на 2 байта. При этом в блоках памяти получаются "дырки", которые могут доставить неудобство в смысле несовместимости с платформами, где выравнивание отсутствует. Чтобы отключить выравнивание, нужно применить ключевое слово __attribute__ для переменных, размер типа которых больше байта, например:
typedef struct{
    uchar AA;                                         //размер переменной 1 байт
    uint16_t LightLevelOn __attribute__ ((packed));   //размер 2 байта, отключаем выравнивание
    uint16_t LightLevelOff __attribute__ ((packed));  //2 байта, отключаем выравнивание
    uchar IntLight;                                   //1 байт
    uchar MotionDetect;                               //1 байт
    uchar LightTime;                                  //1 байт
    uchar RiseStep;                                   //1 байт
    uchar FallStep;                                   //1 байт
    uchar AdcGain;                                    //1 байт
    uint16_t CRC __attribute__ ((packed));            //2 байта, отключаем выравнивание
}tParams;

Последнее обновление ( 01.11.2008 )
 

Добавить комментарий

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:

Защитный код
Обновить

< Пред.   След. >

Top of Page
 
microsin © 2023