Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Что за штука __atribute__?

69K
22 марта 2011 года
Котов Алексей
1 / / 22.03.2011
Столкнулся с программированием прерываний (чистый Си), и постоянно встречаются в исходниках конструкции типа
 
Код:
#if defined(__GNUC__)
__attribute__((__naked__))
#endif

Так вот что за [FONT="Courier New"]__naked__[/FONT]? И вообще [FONT="Courier New"]__attribute__[/FONT] ?
[FONT="Courier New"]__attribute__((__packed__)),
__attribute__((__constructor__))[/FONT]?
В какой документации почитать? На компилятор или libc?
5
22 марта 2011 года
hardcase
4.5K / / 09.08.2005
Столкнулся с программированием прерываний (чистый Си), и постоянно встречаются в исходниках конструкции типа
 
Код:
#if defined(__GNUC__)
__attribute__((__naked__))
#endif

Так вот что за [FONT="Courier New"]__naked__[/FONT]? И вообще [FONT="Courier New"]__attribute__[/FONT] ?
[FONT="Courier New"]__attribute__((__packed__)),
__attribute__((__constructor__))[/FONT]?
В какой документации почитать? На компилятор или libc?


STFW?
Это фича компилятора, позволяет сообщать кое какие метаданные. Атрибут __naked__ приводит к тому, что функция генерируется без пролога и эпилога, грубо говоря она не чистит стек.
Впрочим вот первая ссылка из гугла, там внизу подробности.

4
22 марта 2011 года
mike
3.7K / / 01.10.2002
Столкнулся с программированием прерываний (чистый Си), и постоянно встречаются в исходниках конструкции типа
 
Код:
#if defined(__GNUC__)
__attribute__((__naked__))
#endif

Так вот что за [FONT="Courier New"]__naked__[/FONT]? И вообще [FONT="Courier New"]__attribute__[/FONT] ?
[FONT="Courier New"]__attribute__((__packed__)),
__attribute__((__constructor__))[/FONT]?
В какой документации почитать? На компилятор или libc?



packed - заставляет паковать структуры, иначе атрибуты будут выровнены как захочется компилятору, например по 8 байтам на 64-битных машинках. Хотя факторов тут много, но только разрядность шины данных.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог