-1
我想通過按下調用的函數my_function
按鈕:爲什麼在通過指針調用函數時會收到錯誤?
該按鈕結構的元件:
struct newtComponent_struct {
...
newtCallback callback;
void * callbackData;
...
void * data;
};
哪裏newtCallback callback
是
typedef void (*newtCallback)(newtComponent, void *);
newtComponent is:
typedef struct newtComponent_struct * newtComponent;
因此我這樣做:
button->callback = my_function;
當創建my_function是:
void my_function (newtComponent co, void* data)
{
printf ("Hello world\n");
}
按鈕的處理程序是這樣做的:
if(button->callback) button->callback(button, button->callbackData);
不幸的是,我得到的錯誤:
"Pointer to incomplete class type is not allowed"
button->callback = my_function;
我在做什麼錯?
您的'typedef'是否在結構定義之前? –
告訴我們'按鈕'是如何聲明的? –
什麼是'newtComponent'定義爲? – owacoder