首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • define的问题 [已结帖,结帖人:fengbao5134]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fengbao5134
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-08-20 10:29:12 楼主
    #define US_EAT_LBUTTON (1 < <1)
    #define US_EAT_RBUTTON (1 < <2)
    #define US_EAT_MBUTTON (1 < <3)
    为什么要这样写,有什么作用,谢谢各位,小弟经验不足,请赐教!
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • iidioter
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 10:38:491楼 得分:0
    C/C++ code
    #define US_EAT_LBUTTON (1 < <1) #define US_EAT_RBUTTON (1 < <2) #define US_EAT_MBUTTON (1 < <3)


    应该是这里面的1, 2, 3可能会变化...
    如果发生变化只是修改此处就可以了,完全不需要在全部代码中查找替换....
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hqin6
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 10:44:252楼 得分:0
    嗯,宏定义这个好处明显!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lujian19850203
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 10:49:243楼 得分:0
    #define aa
    后面可以加:

    #if defined(aa)
    int aa = 0;
    #elif defined(bb)
    int bb = 0;
    #else
    int cc =0
    #endif

    预编译好处大家都知道了!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • guzhilei1986
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 10:49:484楼 得分:0
    引用 2 楼 hqin6 的回复:
    嗯,宏定义这个好处明显!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fengbao5134
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 10:57:395楼 得分:0
    1楼能再说的明白点吗?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lovexieli
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 11:19:256楼 得分:0
    C/C++ code
    #define US_EAT_LBUTTON (1 < <1) #define US_EAT_RBUTTON (1 < <2) #define US_EAT_MBUTTON (1 < <3) 宏定义,US_EAT_MBUTTON等效于(1 < <3)表达式。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fengbao5134
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 11:29:377楼 得分:0
    具体点
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • e_sharp
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 12:52:438楼 得分:0
    #define US_EAT_LBUTTON (1 < <1)

    --------------------------

    i = US_EAT_LBUTTON; //相当于 i=(1 < <1);

    为什么要这样写? 要看具体的代码,可能是为了代码可读性,再有就是方便修改
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ws_yqr
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 14:57:509楼 得分:0
    可以根据某个标识符是否被定义包含不同的代码
    例:引用三楼的
    #define aa 

    #if defined(aa)
    int aa = 0;
    #elif defined(bb)
    int bb = 0;
    #else
    int cc =0
    #endif
    例子的结果是源代码中将包含int aa=0;相同的,如果第一行为#define bb,源代码中将包含int bb=0


     
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xqls_xqls
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 15:08:1410楼 得分:0
    引用 8 楼 e_sharp 的回复:
    #define US_EAT_LBUTTON (1 < <1)

    --------------------------

    i = US_EAT_LBUTTON; //相当于 i=(1 < <1);

    为什么要这样写? 要看具体的代码,可能是为了代码可读性,再有就是方便修改
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • prgmBaggio
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 23:00:0511楼 得分:0
    看这些宏的命名估计是定义资源ID,而1 < <1实际就是0x02,1 < <2就是0x04
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • HelloDan
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 23:01:2112楼 得分:0
    移位啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • adm_qxx
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 09:59:2513楼 得分:20
    #define US_EAT_LBUTTON (1 < < 1)
    #define US_EAT_RBUTTON (1 < < 2)
    #define US_EAT_MBUTTON (1 < < 3)
    --
    楼主说的是不是定义每个Bit上的掩码。

    其实上面的完全可以写成:
    #define US_EAT_LBUTTON (0x0002)
    #define US_EAT_RBUTTON (0x0004)
    #define US_EAT_MBUTTON (0x0008)

    用移位的形式来写应该是为了可读性。在性能上没有任何区别。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hyyuanqiang
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-28 16:39:3214楼 得分:0
    引用 4 楼 guzhilei1986 的回复:
    引用 2 楼 hqin6 的回复:
    嗯,宏定义这个好处明显!

    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved