Vit (11.06.2007 20:34, просмотров: 1) ответил Baser на Проконсультируйте по Си, pls!
Это указатель на функцию Объявляется переменная (указатель)
void (*funcptr)(void);
затем можно присвоить значение адреса функции,
funcptr = &MyFun;
либо непосредственно адрес с приведением типа к указателю на функцию.
funcptr = (void(*)())0x0000 ;
Аналогично всё в одном флаконе - объявление переменной типа указатель на функцию с явной инициализацией
void (*funcptr)( void ) = (void(*)())0x0000 ; // Set up function pointer to RESET vector
В случае, если функция не void, могут быть иные варианты, например,
int (*SendPacket_F)( HANDLE SPort, HANDLE Pr_ID, BYTE * buf, WORD len );
тогда адрес функции такого же типа с таким же набором параметров можно присвоить просто записав
SendPacket_F = &MB_RTU_SendPacket;
Такие указатели кроме бутлодырей удобно пользовать в структурах, например, описывающих работу с меню, но пользоваться ими на С нужно аккуратно, потому как неинициализированные значения по умолчанию инициализируются в NULL и использование таковых может привести к удивительным результатам;)))