указатель на функцию, структура как параметр

Еще раз сегодня с повторным вводом ..

В структуре есть указатель на функцию, в этой функции я хочу иметь возможность работать с данными из является структурой, поэтому указатель на структуру задается как параметр.

Демонстрация этой проблемы

#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 *', смешно!

любая идея, как это исправить?

5
задан Meloun 10 August 2011 в 15:21
поделиться