Какие спец эффекты можно ожидать при преобразовании типов указателей на функцию В параметрах функции.
Например определим тип указатель на функцию с одним параметром типа указатель на неопределенный тип , функция ничего не возвращает typedef void (*CPU_FNCT_PTR)(void *); и тип указатель на функцию typedef void (*CPU_FNC)(char);
void func2(char ParF2 ); char Data; func1( void (* Fnc_par)(void *),void * ptrPar);
в параметре функции func1 передаем указатель на функцию с одним параметром типа указатель на неопределенный тип , функция ничего не возвращает.
Передадим указатель на функцию func2 как параметр func1 (приведя ее к типу CPU_FNCT_PTR) и передадим указатель на переменную Data как второй параметр приведя ее к типу void * ;. Получится такой вызов func1( (CPU_FNCT_PTR) func2, ( void *)Data);
…….
func1( void (* Fnc_par)(void *),void * ptrPar) { *Fnc_par( * ptrPar); // Сработает func2 ? или // надо преобразовать *((CPU_FNC ) Fnc_par) ( ( сhar*) ptrPar); };
А хотелось бы просто указатель на произвольную функцию и ее аргумент тип которого заранее неизвестен
|