阅读:1860回复:10
高手来帮我看看
看代码的时候看到这样的定义,不知道是什么意思,为什么要这样用,大侠们解析一下:
#define STRUCT u8:0; u8:8; u8:8; u8:0; typedef struct { u8 x; u8 y; STRUCT } ctrl; 啥子意思? 不懂!(u8为 unsigned char的定义) |
|
|
沙发#
发布于:2005-03-21 19:37
看代码的时候看到这样的定义,不知道是什么意思,为什么要这样用,大侠们解析一下: 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] |
|
|
板凳#
发布于:2005-03-22 09:02
u8:0; u8:8; u8:8; u8:0;
我觉得这样不是定义变量吧, 可是到底是 什么意思呢? :( |
|
|
地板#
发布于:2005-03-22 09:30
看代码的时候看到这样的定义,不知道是什么意思,为什么要这样用,大侠们解析一下: 结构ctrl大小为4,STRUCT占用2个字节,STRUCT就是位定义。 |
|
|
地下室#
发布于:2005-03-22 10:52
奇怪,这段代码这样用,用来干什么呢?
|
|
|
5楼#
发布于:2005-03-22 10:57
是为了对齐吗?
|
|
6楼#
发布于:2005-03-22 10:59
奇怪,这段代码这样用,用来干什么呢? 没有代码 |
|
|
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? 还是不解? |
|
|
8楼#
发布于:2005-03-22 11:54
是为了对齐吗? 怎么个对齐法阿?晕了 |
|
|
9楼#
发布于:2005-03-22 12:32
拿对该数据结构操作的程序来给大伙看看?
|
|
|
10楼#
发布于:2005-03-22 15:14
可是我还见过这样的用法: 因为u8你不是说是无符号字符吗?那总共8位,只能定义0-7,但你这段程序还是很费解,把上下文铁出来看看 |
|
|