Слово после фигурных скобок аргументов функции

Я просто читаю файлы заголовков для кода задачи в ESP8266 SDK.

Я нашел эту строку, и мне интересно, что означает слово PRIVILEGED_FUNCTION после фигурных скобок аргументов функции?

void vTaskDelay( const TickType_t xTicksToDelay ) PRIVILEGED_FUNCTION;

PRIVILEGED_FUNCTION определен здесь, но почему он используется после фигурных скобок функции?

/* Ensure API functions go in the privileged execution section. */
#define PRIVILEGED_FUNCTION __attribute__((section("privileged_functions")))
#define PRIVILEGED_DATA __attribute__((section("privileged_data")))

, 👍0


1 ответ


Лучший ответ:

1

Это невозможно сказать, не заглянув в исходный код этого SDK.

Однако это будет просто макрос препроцессора, который, вероятно, расширяется до одного или нескольких атрибутов, некоторые из которых могут быть специфичны для компилятора XTensa LX106.


Обновить после редактирования:

Функция помещается в раздел привилегированная_функция. Затем этот раздел помещается компоновщиком в определенную область памяти.

Для дальнейшего изучения того, что он делает, вам нужно посмотреть в скрипте компоновщика, чтобы увидеть, как он обрабатывает этот раздел и что это означает с точки зрения чипа, сопоставив его с техническим описанием чипа.

,

Хорошо, позвольте мне проверить, где это слово определено., @R1S8K

Я отредактировал сообщение., @R1S8K

Да, вы правы #include <xtensa/config/core.h> #include <xtensa/tie/xt_interrupt.h> #include <xtensa/tie/xt_timer.h> это xtensa., @R1S8K

Повторите свой ответ: Спасибо за объяснение. Но мой вопрос также касается метода размещения чего-либо после скобок функций в правилах программирования на C. Как называется этот метод?, @R1S8K

Это называется писать код., @Delta_G

Это называется добавлением атрибутов в прототип функции. Они могут находиться в любом месте прототипа., @Majenko

@Majenko .. чувак, большое тебе спасибо. Я просто польщен тем, что ты мне отвечаешь. Спасибо еще раз !, @R1S8K

Так что это может быть и так: void vTaskDelay PRIVILEGED_FUNCTION( const TickType_t xTicksToDelay ); ? Что я могу добавить этот атрибут перед именем функции или даже после фигурных скобок параметров функции, верно?, @R1S8K

@ R1S8K да, верно., @Majenko