Пустота * используется для поддержания состояния… (программирование на C)

В настоящее время мы учимся программировать микроконтроллеры AVR (только стандарт Ansi C89). Часть включенных драйверов - это заголовок, который касается планирования, то есть выполнения задач с разной скоростью. Мой вопрос связан с цитатой из документации:

«Каждая задача должна поддерживать свое собственное состояние, используя статические локальные переменные».

Что это означает на самом деле? Кажется, они передают функции void * для поддержания состояния, но затем не используют его?

Глядя на код в файле, я понимаю, что они имеют в виду:

{.func = led_flash_task, .period = TASK_RATE / LED_TASK_RATE, .data = 0} 
/* Last term the pointer term */

Есть функция, которая работает с указанными выше параметрами в массиве, однако действует только как планировщик. Тогда функция led_flash_task будет

static void led_flash_task (__unused__ void *data)
{
    static uint8_t state = 0;

    led_set (LED1, state); /*Not reall important what this task is */
    state = !state; /*Turn the LED on or off */
}

И из заголовка

#define  __unused__ __attribute__ ((unused))

И передача void * данных предназначена для поддержания состояния задачи? Что имеется в виду?

Благодарю за помощь

6
задан Lhh92 27 September 2011 в 07:20
поделиться