typedef
используется для определения нового типа.Это означает, что typedef int (*callback) (int,int);
означает, что вы определяете новый тип с именем callback
.Вы можете использовать этот тип для определения переменных.Переменная, имеющая тип callback
, фактически является указателем на функцию, которая принимает два int
s и возвращает int
.
. Это объяснение относится к вашему struct gate
, внутри которого вы определяете fptr
быть типа callback
.
Вот простой пример:
#include <stdio.h>
int function1(int a, int b);
int function2(int a, int b);
typedef int (*callback) (int,int);
struct gate{
char name[50];
callback fptr;
};
int main(void) {
struct gate g;
g.fptr = function1;
printf("The sum is: %d\n", g.fptr(4, 5));
return 0;
}
int function1(int a, int b)
{
return a + b;
}
Запуск вышеуказанной программы показывает: The sum is: 9