当前位置:  技术问答>linux和unix

有高手能帮我解释一下这段代码的意图吗?谢谢!

    来源: 互联网  发布时间:2015-11-11

    本文导语:  /* Options... */         menuitem = gtk_menu_item_new_with_mnemonic ("_Options...");         gtk_widget_show (menuitem);         gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);         g_signal_connect (G_OBJECT (menuitem), "activat...

/* Options... */
        menuitem = gtk_menu_item_new_with_mnemonic ("_Options...");
        gtk_widget_show (menuitem);
        gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
        g_signal_connect (G_OBJECT (menuitem), "activate",
                G_CALLBACK (menu_callback), (void *)0x205);
这就是一个普通的菜单选项,调用了menu_callback这个回调函数,注意传递的这个参数(void *)0x205   在menu_callback函数中进行了如下处理:
static void menu_callback (GtkMenuItem *menuitem, gpointer user_data)
{
        int id = (int)user_data;

        if (((id & 0xF00) == 0x000) && ((id & 0x0FF) 0x000))
        {
         //此处代码省略
        }
        switch (id)
        {
                case 0x205:
                        option_window (); break;
        }
}

为什么要用0x205作为参数呢,还有回调函数里面为什么用这些特定的值进行比较呢?代码我能看懂,但不明白作者什么意图,有高手能帮解释一下吗,万分感谢!!!
还有为什么要进行这种位运算呢,直接用整数来比较不行吗?小弟是菜鸟,不吝赐教!

|
好像也没什么,magic number而已。你用枚举或者宏替换了也可以。

|
这是别人的源代码吗?

一般205这些都应该有宏定义,其实没什么特别的 应该和1,2,3一样只是代表某种含义而已

至于位操作,一般来说说肯定这个数字有组合之意,

我想这些最好看他提供的文档,里面应该有答案

    
 
 

您可能感兴趣的文章:

  • 高手帮忙解释
  • 哪位高手能替兄弟解释一下,Struts是怎么回事?
  • 项目中需要读写条形码,哪位高手给解释一下
  • 请高手帮我解释一下这段代码!!!
  • 哪位高手可以解释下Linux的消息机制吗?谢谢
  • VMWare下的给虚拟机添加串口的问题?菜鸟请高手解释
  • 高手请解释一下什么是“添加到主机路由”
  • 哪位高手能解释下gmake 的depend命令
  • 我是新学者,那位高手能解释一下什么是挂载点?它又有什么作用?
  • 一个UNIX操作系统是由那些部门组成的呢?高手详细解释给我
  • 奇怪的日期问题,请高手解释
  • 请高手为我解释一下
  • 请高手帮忙解释一下,insmod ./$module.ko || exit 1中的“||”是什么意思啊,多谢!
  • red hat5 + VMware5 配置samba服务器, 求高手解释
  • 请斑竹和高手们帮我解释一下:范式中的*的作用!感激不尽
  • 请教内核高手,抽空解释一下系统中断调用处理流程
  • 关于"symbol lookup error"问题的诡异现象,高手帮忙解释解释
  • 哪位C语言高手帮我解释下下面程序的运行结果 ???????
  • 请那位高手详细解释一下wait函数的用法和意义?
  • 读PCI时有段代码不懂,请高手解释一下
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教高手lvs的奇怪问题,我挺着急,希望高手别潜水,就就我,先谢谢了
  • 求助 ==> 代码移殖:从Linux到的Windows,请高手指点一二,谢谢啦
  • 三层结构很简单,但怎么正确使用请高手指点!!!!谢谢
  • linux起不来了,请教高手,谢谢
  • 请教高手,如何在VMware下安装suse10.0??请指教,谢谢。
  • linux内核里面的所有头文件,有没有整理过的,请高手指点!谢谢!!!
  • 请教高手!如何在bean中引入链接池?谢谢!
  • 问Linux高手一个安卓系统的问题,麻烦回答一下,谢谢!
  • 我搞不定了,请高手帮忙!!谢谢
  • crontab的问题,希望高手指教!谢谢!
  • UNIX ,消息队列问题,请高手帮忙,谢谢先!!!急!!!
  • 有没有高手知道linux系统定制(最小化定制)的?(在线守候)请您提供一点相关资料,谢谢!
  • blh(老猫)大哥,你是高手。有建议吗?谢谢了
  • 怎样安装LINUX7.3版,高手请指点!!谢谢了!
  • 怎么才能知道声卡、显卡、网卡的信息?如何安装驱动?请各位高手指点,谢谢!!!
  • 求助,关于显卡驱动的安装,高手请进,谢谢
  • 刚开始用linux,相交一些朋友大家共同进步,成为高手。谢谢!!~
  • 请教高手,谢谢!
  • 一个shell的问题,请各位高手进来帮忙了,急,谢谢
  • oracle iis7站长之家
  • 高手,高手,高高手请进!
  • 有熟悉EXIM的高手高手么??
  • to 高手:学java应该怎样一步步学习,从菜鸟到高手.
  • 高分请高手,高手定能解决
  • 请问高手在linux中用什么命令可以做linux的启动盘???在等待高手??
  • 有高手研究Agent++麽?里面有个thread.h,蛮难读的,请高手指点
  • 难道高手区里的人就是高手?
  • 在dos下用bc31挑战高手******开发mssql程序,连接时报link err:undefined symbol GETNOTE in module DBEXTERN?(挑战高手)
  • 真正的linux高手,请看过来,看你符合高手标准不?
  • 难道这没有高手吗?难道这没有乐于助人的高手?(高分酬谢62+50+50)
  • 关于我对linux高手用yum,非高手用源码的理由


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3