Следующий код действителен C:
typedef int math_op(int, int); // Function type definition
Единственный раз, когда я когда-либо видел тип функции, объявленный и затем использованный, это в случае, когда мы делаем оператор, подобныйследующее:
math_op *mOp = add;
, где add
может быть:
int add(int a, int b)
{
return a + b;
}
Следующие компиляции также с учетом первоначального объявления: math_op mOp;
Однако здесь он объявлен не как указатель на функцию, а как сама функция.Однако я не знаю фактического использования этого и нахожу это довольно запутанным, потому что кажется, что мы объявляем функцию без фактического определения.
Мой вопрос, есть ли другие использование для функции typedef помимо использования ее в качестве указателя на функцию типа этого?Обратите внимание, что я уже знаю об альтернативном синтаксисе типа указателя на функцию typedef int (*math_op)(int,int);
, который создает указатель на функцию типа, тогда как мой оригинальный синтаксис выше создает тип функции , на который мы позже укажем.