Если я наберу определение следующим образом:
typedef int (read_proc_t)(char *page, char **start, off_t off,
int count, int *eof, void *data);
как определено здесь
Как называется эта техника?
Если я определяю тип таким образом, это означает, что я создаю тип read_proc_t
; позже я создаю свою собственную версию read-proc-t
, которая является my_read_proc
, и у меня есть такая структура:
struct test {
read_proc_t read_proc;
}
struct test t;
Я могу сделать что-то вроде этого:
t.read_proc_t = my_read_proc;
Это правильно? Обычно, если я набираю read_proc_t
в качестве указателя на функцию:
typedef int (*read_proc_t)(char *page, char **start, off_t off,
int count, int *eof, void *data);
Мне пришлось бы присвоить адрес функции my_read_proc
указателю функции, например:
(*t.read_proc_t) = &my_read_proc;
В каком случае я выбираю один?