阅读:1270回复:6
请教C51中的一个语句?是D12开发板上的
typedef union _epp_flags
{ struct _flags { unsigned char timer : 1; unsigned char bus_reset : 1; unsigned char suspend : 1; unsigned char setup_packet : 1; unsigned char dma_state : 2; } bits; unsigned short value; } EPPFLAGS; 我的问题:unsigned char timer : 1; “:”是什么意思啊,是初始化吗?不是这样写“unsigned char timer=1;”还有short和int一样吗?教教我吧 |
|
沙发#
发布于:2004-07-17 17:24
终于懂了,原来是位域!在C51BBS上问到的!
|
|
板凳#
发布于:2004-07-18 09:58
大哥,能不能讲详细一点,我也对这个问题困惑呀?这个后面的:1能不能去掉呀,对程序有没有影响呀?
|
|
地板#
发布于:2004-07-18 15:13
: 后面的数字表示结构体中该成员占用几个bit.
struct A { char a:4; char b:4; }c; 这样的定义中 a, 占用低4bit,b占用高4bit. 这个c 就是1个byte. (51系统中是这样的,别的系统要看是LSB还是MSB) 如果去掉,完全没有问题,但是变量C就要占用2各BYTE. |
|
地下室#
发布于:2004-07-21 09:30
谢谢davidxu1981讲解,解释的非常好
;) |
|
5楼#
发布于:2004-07-21 10:59
建议找一本C语言的书看看。
|
|
6楼#
发布于:2004-07-22 16:25
这是C语言中的联合
|
|