loading ...
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

分享 分享 |  评论 (1) |  阅读 (?)  |  固定链接 |  类别 (gtk) |  发表于 09:39
搜狐博客温馨提示:警惕博客留言诈骗, 搜狐博客管理员的正确地址为http://admin.blog.sohu.com, 其他都是冒牌。搜狐博客官方不会要求参加活动的各位博友缴纳任何的手续费用。请勿轻信留言、评论中的中奖信息,更不要拨打陌生电话及向陌生帐户汇款,谨防受骗!识别更多网络骗术,请 点击查看详情
正在读取评论信息...
您还未登录,只能匿名发表评论。或者您可以 登录 后发表。
 
  一个单亲妈妈的心愿:治好7岁儿子的白血病
表  情:
加载中...
回复通知: 同时用小纸条通知对方该回复