我试图将结构传递给在更改组合框时运行的回调函数,这是我的代码:
static struct parameters changed_set_parameters;
changed_set_parameters.set_combo = set_combo;
gtk_signal_connect (GTK_OBJECT (set_combo), "changed",GTK_SIGNAL_FUNC(set_changed), &changed_set_parameters);
这里的功能是:
void set_changed(GtkDialog *dialog, gint response_id, gpointer callback_params) {
g_print ("%s\n",gtk_combo_box_text_get_active_text ((GtkComboBoxText *)((struct parameters *) callback_params)->set_combo));
}
这是我得到的:
gtk_signal_handlers.h:7:98: error: dereferencing pointer to incomplete type
g_print ("%s\n",gtk_combo_box_text_get_active_text ((GtkComboBoxText *)((struct parameters *) callback_params)->set_combo));
我在另一个应用程序中有几乎相同的代码,它运行得很好
答案 0 :(得分:0)
error: dereferencing pointer to incomplete type
此处的解除引用运算符为->
,解除引用的指针为((struct parameters *) callback_params)
,其类型为struct parameters *
,set_combo
为struct parameters
的成员,因此struct parameters
的定义必须超出此范围。