我需要创建一个宏来类型化(正确的词?)来自函数参数的指针 struct .这是我的 struct :
typedef struct _AppData {
GtkWidget* toplevel; // main window
GtkWidget* view; // column style view
GtkWidget* entry_outdir; // output dir
GtkWidget* entry_artist; // artist
GtkWidget* entry_title; // title
GtkWidget* entry_link; // link
GtkWidget* check_jman; // bool for jman
GtkWidget* menuitem_clear; // init states
GtkWidget* menuitem_action; // play/stop menu item
} AppData, *PAppData;
我代码中的某个地方是这样使用的:
g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (cb_select_folder), pad);
void cb_select_folder (GtkButton* sender, gpointer user_data)
{
PAppData pad = PAPPDATA(user_data); // typecast macro here
const gchar* dirname = gtk_entry_get_text (GTK_ENTRY(pad->entry_outdir));
// ..
}
要创建宏,我try 这样做:
#define PAPPDATA(_in_) (PAppData(_in_))
我收到错误:"user_data"之前预期的")" 有什么帮助吗?