loading ...

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);

}

结果:10ee7be1d98.jpg

评论 (0) |  阅读 (?)  |  固定链接 |  类别 (gtk) |  发表于 09:39
您还未登录,只能匿名发表评论。或者您可以 登录 后发表。
*
 
  *中国人爱国心,搜狗输入法爱国主题皮肤下载>>
表  情:
加载中...
回复通知: 同时用小纸条通知对方该回复