Еще раз сегодня с перепечатыванием ..
В структуре указатель на функцию, в этой функции я хочу иметь возможность работать с данными из этой структуры, поэтому указатель на структуру задается в качестве параметра.
Демонстрация этой проблемы
#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: примечание: ожидается "struct tMYSTRUCTURE *", но
аргумент имеет тип 'struct tMYSTRUCTURE *'
ожидается "struct tMYSTRUCTURE *", но это "struct tMYSTRUCTURE *", забавно!
Есть идеи как это исправить?