C++结构体:
typedef struct _CommBuffer
{
Byte Addr :4;
Byte Fun :4;
Byte Readonly:1;
Byte WritOnly:1;
Byte value 6;
}CommBuffer;
使用:
Word buffer;
rec(&buffer);
CommBuffer *pB;
pB = (CommBuffer *)&buffer;
int add = pB->Addr;
int fun = pB->Fun;
....
问题:
结构体如何定义?
如何使用?可以将word转为CommBuffer吗?
typedef struct _CommBuffer
{
Byte Addr :4;
Byte Fun :4;
Byte Readonly:1;
Byte WritOnly:1;
Byte value 6;
}CommBuffer;
使用:
Word buffer;
rec(&buffer);
CommBuffer *pB;
pB = (CommBuffer *)&buffer;
int add = pB->Addr;
int fun = pB->Fun;
....
问题:
结构体如何定义?
如何使用?可以将word转为CommBuffer吗?
位结构体如何定义?
如何使用?可以将word转为CommBuffer吗?
定义一个类似于 pB->Addr= buffer&0x0f;
buffer |= pB->Addr
的转换程序。
{
public Byte a:1;
public Byte b:1;
public Byte c:6;
}
是不是这样定义呢?
我试了有编译错误
{
public UInt16 Data;
public byte Addr
{
get{ return (byte)( ( Data & 0xF000 ) >> 12 );
}
public byte Fun
{
get{ return (byte)( ( Data & 0xF000 ) >> 8 );
}
public byte Readonly
{
get{ return (byte)( ( Data & 0x0080 ) >> 7 );
}
public byte WritOnly
{
get{ return (byte)( ( Data & 0x0040 ) >> 6 );
}
public byte value
{
get{ return (byte)( Data & 0x003F );
}
};