typedef struct _COMSTAT {
DWORD fCtsHold : 1;
DWORD fDsrHold : 1;
DWORD fRlsdHold : 1;
DWORD fXoffHold : 1;
DWORD fXoffSent : 1;
DWORD fEof : 1;
DWORD fTxim : 1;
DWORD fReserved : 25;
DWORD cbInQue; // 接收队列内数据量
DWORD cbOutQue; // 发送队列内数据量
} COMSTAT, *LPCOMSTAT;
这里的“:1“ 表示什么意思?
DWORD fCtsHold : 1;
DWORD fDsrHold : 1;
DWORD fRlsdHold : 1;
DWORD fXoffHold : 1;
DWORD fXoffSent : 1;
DWORD fEof : 1;
DWORD fTxim : 1;
DWORD fReserved : 25;
DWORD cbInQue; // 接收队列内数据量
DWORD cbOutQue; // 发送队列内数据量
} COMSTAT, *LPCOMSTAT;
这里的“:1“ 表示什么意思?
我在c#中用到这个结构传值
[StructLayout(LayoutKind.Sequential)]
public struct COMSTAT
{
public int fCtsHold;
public int fDsrHold;
public int fRlsdHold;
public int fXoffHold;
public int fXoffSent;
public int fEof;
public int fTxim;
public int fReserved ;
public int cbInQue;
public int cbOutQue;
}
ClearCommError(hCommFile,errs,comstat);
得到的cbInQue的值一直是0:(
如果刚好有32个这样的变量,就刚好占用一个 DWORD 的空间,是不是比定义 32 个 BOOL 变量来的舒服啊:)
这样声明可以节省空间,而且也很方便,简洁。