CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

下面的语句是什么意思?

楼主boyplayee()2005-09-21 23:15:59 在 C/C++ / C语言 提问

typedef   unsigned   long   Datum; /*   XXX   sizeof(long)   >=   sizeof(void   *)   */  
   
   
  #define   GET_1_BYTE(datum) (((Datum)   (datum))   &   0x000000ff)  
  #define   GET_2_BYTES(datum) (((Datum)   (datum))   &   0x0000ffff)  
  #define   GET_4_BYTES(datum) (((Datum)   (datum))   &   0xffffffff)  
  #define   SET_1_BYTE(value) (((Datum)   (value))   &   0x000000ff)  
  #define   SET_2_BYTES(value) (((Datum)   (value))   &   0x0000ffff)  
  #define   SET_4_BYTES(value) (((Datum)   (value))   &   0xffffffff) 问题点数:20、回复次数:4Top

1 楼jamesfancy(▲) 边城狂人 <Java|C++] (★)回复于 2005-09-22 00:15:50 得分 10

typedef   unsigned   long   Datum; /*   XXX   sizeof(long)   >=   sizeof(void   *)   */  
  //   把   Datum   定义为无符号长整形  
   
  #define   GET_1_BYTE(datum) (((Datum)   (datum))   &   0x000000ff)  
  //   将   datum   转换成无符号长整形并通过位运算保留最后8位,也就是一个字节,其余位均置0  
  #define   GET_2_BYTES(datum) (((Datum)   (datum))   &   0x0000ffff)  
  //   同上,不过保留的是两个字节  
  #define   GET_4_BYTES(datum) (((Datum)   (datum))   &   0xffffffff)  
  #define   SET_1_BYTE(value) (((Datum)   (value))   &   0x000000ff)  
  #define   SET_2_BYTES(value) (((Datum)   (value))   &   0x0000ffff)  
  #define   SET_4_BYTES(value) (((Datum)   (value))   &   0xffffffff)Top

2 楼jamesfancy(▲) 边城狂人 <Java|C++] (★)回复于 2005-09-22 00:17:08 得分 0

后三个好像有点问题,似乎应该用   |   代替   &,不过即使这样还是觉得有点问题,看你写这个代码的目的了。Top

3 楼dhy311(好好学习,天天向上)回复于 2005-09-22 09:18:15 得分 10

typedef   unsigned   long   Datum; /*   XXX   sizeof(long)   >=   sizeof(void   *)   */  
  //   把   Datum   定义为无符号长整形  
   
  #define   GET_1_BYTE(datum) (((Datum)   (datum))   &   0x000000ff)  
  //   取得低8位  
  #define   GET_2_BYTES(datum) (((Datum)   (datum))   &   0x0000ffff)  
  //   同上,取得低16位  
  #define   GET_4_BYTES(datum) (((Datum)   (datum))   &   0xffffffff)  
  #define   SET_1_BYTE(value) (((Datum)   (value))   &   0x000000ff)  
  //实际上没有意思,效果跟get_1_byte一样,除非写成  
  #define   SET_1_BYTE(value) (   value   =   \  
  ((Datum)   (value))   &   0x000000ff)  
  #define   SET_2_BYTES(value) (((Datum)   (value))   &   0x0000ffff)  
  #define   SET_4_BYTES(value) (((Datum)   (value))   &   0xffffffff)Top

4 楼SammyLan((基础决定你能走多远)--英语菜才是真的菜)回复于 2005-09-22 12:31:29 得分 0

MARK  
  Top

相关问题

  • 下面的语句是什么意思?
  • 请问下面这个java语句段代表什么意思
  • 让各位见笑了,下面语句是什么意思?
  • 高手指点一下,下面两个语句什么意思
  • 谁帮我解释一下,下面这个语句是什么意思?
  • 在VC中,下面的语句是什么意思?(比较初级的问题)
  • 有没有谁知道下面sql语句中这个'N'是什么意思!
  • 请问下面这条语句是什么意思?希望详细点,谢谢!
  • 这条语句什么意思?
  • 这个语句是什么意思啊?

关键词

  • datum
  • xffffffff
  • ffff
  • define
  • bytes
  • ff
  • 无符号长整形
  • sizeof
  • xxx
  • typedef unsigned

得分解答快速导航

  • 帖主:boyplayee
  • jamesfancy
  • dhy311

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo