我正在浏览一个windows设备驱动程序,看到了如下结构代码:

struct driver1
{
       UINT64 Readable     : 1;
       UINT64 Writable     : 1;
       UINT64 Executable   : 1;
       UINT64 Control      : 3;
       UINT64 Status       : 1;
       UINT64 Reserved     : 51;
       UINT64 Available1   : 5;
       UINT64 IsMapped     : 1;
};

每个UINT64代表一个位吗?冒号代表位吗?

最佳答案

这意味着ReadableWritableExecutable各占用一点,Control占用3,Reserved51等等。
有关更多信息,请参阅http://publications.gbdirect.co.uk/c_book/chapter6/bitfields.html
uint64仅仅意味着整个位字段将在64位无符号整数内。

关于c - 有关结构的基本问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5082256/

10-11 21:14