通常当我收到这种错误消息时,这意味着结构对代码是隐藏的,因此我不能直接使用struct的变量。
在这种情况下,struct在同一个C文件中定义。
我将C文件粘贴到http://bpaste.net/show/224777/
在第330行,我有以下代码:
TrackBoxWidget *track_box_widget_new(GtkWidget *track_data_widget,GVariant *audio_in_devices) {
// can add more parameters here
TrackBoxWidget *widget = g_object_new(TRACK_BOX_WIDGET_TYPE,"audio_in_devices", audio_in_devices,NULL);
/*LINE 330*/ widget->track_data_widget=track_data_widget;
...
正如你所看到的那样;我试图在TrackBoxWidget typedef的widget中设置track_data_widget变量。不知怎的,我仍然得到这个错误。
任何想法?
答案 0 :(得分:0)
在作业的左侧,您有widget->track_data_widget
成员,TrackBoxWidget
成员{aka struct _track_box_widget
,类型为TrackDataWidget*
。
在作业的右侧,您有track_data_widget
track_box_widget_new
函数的参数GtkWidget*
。由于这两个指针的类型不同,因此在没有强制转换的情况下不允许直接赋值。