heshen
驱动老牛
驱动老牛
  • 注册日期2002-04-19
  • 最后登录2014-01-26
  • 粉丝0
  • 关注0
  • 积分45分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:1860回复:10

高手来帮我看看

楼主#
更多 发布于:2005-03-21 18:18
看代码的时候看到这样的定义,不知道是什么意思,为什么要这样用,大侠们解析一下:

#define STRUCT u8:0; u8:8; u8:8; u8:0;

typedef struct
{
  u8 x;
  u8 y;
  STRUCT
}
ctrl;

啥子意思?
不懂!(u8为 unsigned char的定义)
不要啊!
ancn-wang
驱动中牛
驱动中牛
  • 注册日期2003-03-07
  • 最后登录2005-12-28
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-03-21 19:37
看代码的时候看到这样的定义,不知道是什么意思,为什么要这样用,大侠们解析一下:

#define STRUCT u8:0; u8:8; u8:8; u8:0;

typedef struct
{
  u8 x;
  u8 y;
  STRUCT
}
ctrl;

啥子意思?
不懂!(u8为 unsigned char的定义)


uchar :0 ;  编译不过去(iar 430 v3.10a版编译器(:0不行,:不能做变量名));
其他基本可以理解阿
应该如下:
typedef struct
{
  u8 x;
  u8 y;
  u8:0;
  u8:8;
  u8:8;
  u8:0;
}ctrl;

期待其他的解释!




[编辑 -  3/21/05 by  ancn-wang]
成功源自信心
heshen
驱动老牛
驱动老牛
  • 注册日期2002-04-19
  • 最后登录2014-01-26
  • 粉丝0
  • 关注0
  • 积分45分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-03-22 09:02
u8:0; u8:8; u8:8; u8:0;
我觉得这样不是定义变量吧,
可是到底是 什么意思呢? :(
不要啊!
wywwwl
驱动大牛
驱动大牛
  • 注册日期2002-08-16
  • 最后登录2018-04-07
  • 粉丝1
  • 关注0
  • 积分-10分
  • 威望135点
  • 贡献值6点
  • 好评度76点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2005-03-22 09:30
看代码的时候看到这样的定义,不知道是什么意思,为什么要这样用,大侠们解析一下:

#define STRUCT u8:0; u8:8; u8:8; u8:0;

typedef struct
{
  u8 x;
  u8 y;
  STRUCT
}
ctrl;

啥子意思?
不懂!(u8为 unsigned char的定义)


结构ctrl大小为4,STRUCT占用2个字节,STRUCT就是位定义。
琢磨悟真知
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-03-22 10:52
奇怪,这段代码这样用,用来干什么呢?
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2005-03-22 10:57
是为了对齐吗?
wywwwl
驱动大牛
驱动大牛
  • 注册日期2002-08-16
  • 最后登录2018-04-07
  • 粉丝1
  • 关注0
  • 积分-10分
  • 威望135点
  • 贡献值6点
  • 好评度76点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2005-03-22 10:59
奇怪,这段代码这样用,用来干什么呢?


没有代码
琢磨悟真知
heshen
驱动老牛
驱动老牛
  • 注册日期2002-04-19
  • 最后登录2014-01-26
  • 粉丝0
  • 关注0
  • 积分45分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-03-22 11:52
可是我还见过这样的用法:
typedef struct
{
u8 x;
u8 y;
u8 z;
u8 l;
STRUCT
u8 k;
}
ctrl;

这样还能说明这个ctrl结构的大小么?

u8:0; u8:8; u8:8; u8:0;

位定义描述的对象是什么,为什么有四个?
如果是u8,是不是只能定义为0~8?
还是不解?
不要啊!
heshen
驱动老牛
驱动老牛
  • 注册日期2002-04-19
  • 最后登录2014-01-26
  • 粉丝0
  • 关注0
  • 积分45分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-03-22 11:54
是为了对齐吗?

怎么个对齐法阿?晕了
不要啊!
hzhq1
驱动老牛
驱动老牛
  • 注册日期2002-12-13
  • 最后登录2012-03-29
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望1054点
  • 贡献值0点
  • 好评度606点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-03-22 12:32
拿对该数据结构操作的程序来给大伙看看?

这是一个,一个风雨交加的,漆黑的夜晚......恩,情节越来越复杂了。
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-03-22 15:14
可是我还见过这样的用法:
typedef struct
{
u8 x;
u8 y;
u8 z;
u8 l;
STRUCT
u8 k;
}
ctrl;

这样还能说明这个ctrl结构的大小么?

u8:0; u8:8; u8:8; u8:0;

位定义描述的对象是什么,为什么有四个?
如果是u8,是不是只能定义为0~8?
还是不解?
 

因为u8你不是说是无符号字符吗?那总共8位,只能定义0-7,但你这段程序还是很费解,把上下文铁出来看看
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
游客

返回顶部