Еще раз сегодня с повторным вводом ..
В структуре есть указатель на функцию, в этой функции я хочу иметь возможность работать с данными из является структурой, поэтому указатель на структуру задается как параметр.
Демонстрация этой проблемы
#include <stdio.h>
#include <stdlib.h>
struct tMYSTRUCTURE;
typedef struct{
int myint;
void (* pCallback)(struct tMYSTRUCTURE *mystructure);
}tMYSTRUCTURE;
void hello(struct tMYSTRUCTURE *mystructure){
puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */
}
int main(void) {
tMYSTRUCTURE mystruct;
mystruct.pCallback = hello;
mystruct.pCallback(&mystruct);
return EXIT_SUCCESS;
}
Но я получаю предупреждение
.. \ src \ retyping.c: 31: 5: предупреждение: передача аргумента 1 из 'mystruct.pCallback' из несовместимого типа указателя .. \ src \ retyping.c: 31: 5: note: ожидается 'struct tMYSTRUCTURE *', но аргумент имеет тип 'struct tMYSTRUCTURE *'
ожидается 'struct tMYSTRUCTURE *', но имеет 'struct tMYSTRUCTURE *', смешно!
любая идея, как это исправить?