Слово после фигурных скобок аргументов функции
Я просто читаю файлы заголовков для кода задачи в 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")))
@R1S8K, 👍0
1 ответ
Лучший ответ:
Это невозможно сказать, не заглянув в исходный код этого SDK.
Однако это будет просто макрос препроцессора, который, вероятно, расширяется до одного или нескольких атрибутов, некоторые из которых могут быть специфичны для компилятора XTensa LX106.
Обновить после редактирования:
Функция помещается в раздел привилегированная_функция
. Затем этот раздел помещается компоновщиком в определенную область памяти.
Для дальнейшего изучения того, что он делает, вам нужно посмотреть в скрипте компоновщика, чтобы увидеть, как он обрабатывает этот раздел и что это означает с точки зрения чипа, сопоставив его с техническим описанием чипа.
- esp32 Stack canary watchpoint срабатывает
- ESP32S v1.1 NodeMCU vs ESP32 DevKitV1
- esp32-cam публикует изображение в mqtt
- Невозможно преобразовать 'int (*)[size]' в 'int**': Cannot convert 'int (*)[size]' to 'int**'
- WindowsError(31, "Устройство, подключенное к системе, не функционирует") в arduino
- Как удалить элемент из массива arduino?
- Как очистить кучу памяти в esp32
- Как передать несколько переменных в функцию?
Хорошо, позвольте мне проверить, где это слово определено., @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