Что это за объявление typedef void foo(); имею в виду?
Я не понимаю значения typedef void interrupt_handler();. Может кто-нибудь объяснить это с помощью некоторых примеров?
typedef void interrupt_handler();
Ответ 1
Это означает, что interrupt_handler является синонимом типа для функции, который возвращает void и не указывает его параметры (так называемое декларация старого стиля). См. Следующий пример, где foo_ptr используется как указатель функции (это особый случай, когда скобки не нужны):
#include <stdio.h>
typedef void interrupt_handler();
void foo()
{
printf("foo\n");
}
int main(void)
{
void (*foo_ptr_ordinary)() = foo;
interrupt_handler *foo_ptr = foo; // no need for parantheses
foo_ptr_ordinary();
foo_ptr();
return 0;
}
Ответ 2
Это объявление typedefуказатель функции с определенной сигнатурой (в этом случае функция с void возвращает и нет аргументов).