2006-10-17 | 用结构来传递参数
在g_sigal_connect系列函数中,我们往往需要给CALLBACK函数传入参数,但很多时候一个参数是不够的,往往需要许多参数,这时,我们就用结构吧.
typedef struct _tran_data{
int i;
float f;
char c;
char *str;
}tran_data;
下面是简单的例子:
tran_data *td;
td->i=1;
td->f=1.1;
td->c='c';
td->str="Just for testing!";
g_signal_connect_swapped(G_OBJECT(button),"clicked",G_CALLBACK(callback_fun),td);
callback 函数(callback_fun)
void callback_fun(gpointer user_data)
{
tran_data *td=(tran_data *)user_data;
printf("int i=%d,float f=%.1f,char c=%c,string str=%s\n",td->i,td->f,td->c,td->str);
}
结果:





评论
想第一时间抢沙发么?