Библиотека LUFA (раннее название MyUSB) версия 101122
Function/Variable Attributes

Defines

#define ATTR_NO_RETURN   __attribute__ ((noreturn))
#define ATTR_WARN_UNUSED_RESULT   __attribute__ ((warn_unused_result))
#define ATTR_NON_NULL_PTR_ARG(...)   __attribute__ ((nonnull (__VA_ARGS__)))
#define ATTR_NAKED   __attribute__ ((naked))
#define ATTR_NO_INLINE   __attribute__ ((noinline))
#define ATTR_ALWAYS_INLINE   __attribute__ ((always_inline))
#define ATTR_PURE   __attribute__ ((pure))
#define ATTR_CONST   __attribute__ ((const))
#define ATTR_DEPRECATED   __attribute__ ((deprecated))
#define ATTR_WEAK   __attribute__ ((weak))
#define ATTR_NO_INIT   __attribute__ ((section (".noinit")))
#define ATTR_INIT_SECTION(SectionIndex)   __attribute__ ((naked, section (".init" #SectionIndex )))
#define ATTR_ALIAS(Func)   __attribute__ ((alias( #Func )))

Detailed Description

Макросы для упрощения доступа к GCC-атрибутам для функций и переменных, которые могут быть применены к прототипам функции или атрибутам переменной.


Define Documentation

#define ATTR_ALIAS (   Func)    __attribute__ ((alias( #Func )))

Помечает функцию как ссылку (алиас, псевдоним) на другую функцию.

Parameters:
[in]Funcимя функции, у которой появится новый псевдоним в качестве заданного имени.
#define ATTR_ALWAYS_INLINE   __attribute__ ((always_inline))

Принуждает компилятор встроить код функции вместо её вызова. Когда атрибут применен, то в любом случае тело функции будет встроено в код без генерации вызова.

#define ATTR_CONST   __attribute__ ((const))

Показывает, что указанная функция является константой, т. е. не производит никаких побочных действий (side effects), за исключением доступа к переменным параметров.

#define ATTR_DEPRECATED   __attribute__ ((deprecated))

Помечает указанную функцию как устаревшую, в результате любой её вызов будет сопровождаться проедупреждением компилятора.

#define ATTR_INIT_SECTION (   SectionIndex)    __attribute__ ((naked, section (".init" #SectionIndex )))

Размещает код функции в одной из секций инициализации, которая выполняется перед запуском главной функции (main) приложения. Обратитесь к руководству avr-libc для подробностей по секциям инициализации.

Parameters:
[in]SectionIndexномер секции инициализации, где должна быть размещена функция
#define ATTR_NAKED   __attribute__ ((naked))

Удаляет из функции любую преамбулу или постамбулу. Когда атрибут применен, то функция не будет иметь какого-либо кода для сохранения регистров или стека. Должно использоваться с предосторожностями, и в этом случае программист сам отвечает за целостность стека и работу регистров.

#define ATTR_NO_INIT   __attribute__ ((section (".noinit")))

Принуждает компилятор не обнулять автоматически при старте программы указанную глобальную переменную. В этом случае текущее содержимое RAM, соответствующее этой переменной, будет сохранено. В большинстве случаев эначения в RAM будут случайны, так как при выключении питания volatile-память не сохраняет свое состояние, но это может использоваться в некоторых специальных случаях, например при передаче переменных обратно в программу при сбросе системы по сторожевому таймеру (watchdog reset).

#define ATTR_NO_INLINE   __attribute__ ((noinline))

Защищает компилятор от встраивания (inlining) указанной функции. Когда атрибут применен, то вызов функции ни при каких обстоятельствах не будет заменен встраиванием кода.

#define ATTR_NO_RETURN   __attribute__ ((noreturn))

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

#define ATTR_NON_NULL_PTR_ARG (   ...)    __attribute__ ((nonnull (__VA_ARGS__)))

Показывает, что указанные параметры функции являются указателями, которые никогда не должны быть равны NULL. Когда атрибут прикладывается как разделенный запятыми единично-базовый (1-based) список, то компилятор будет выдавать предупреждение, если при компиляции будет известно, что в точке вызова функции параметр равен NULL.

#define ATTR_PURE   __attribute__ ((pure))

Показывает, что указанная функция чиста, т. е. не производит побочных действий (side-effects), за исключением доступа к глобальным переменным или переменным параметров.

#define ATTR_WARN_UNUSED_RESULT   __attribute__ ((warn_unused_result))

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

#define ATTR_WEAK   __attribute__ ((weak))

Помечает указанную функцию как слабую, которая может быть отменена любыми другими функциями с идентичным именем (в этом случае "слабая" функция будет отброшена при линковке).

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines