冒号的问题
- C/C++ code
struct pmem_bits { unsigned allocated:1; /* 1 if allocated, 0 if free */ unsigned order:7; /* size of the region in pmem space */};
正在学习Android源码
看到这样的冒号的用法,请问是赋值吗?还是位结构?
还有像这样的linux内核代码里的:
- C/C++ code
struct proto_ops unix_dgram_ops = { family: PF_UNIX, release: unix_release, bind: unix_bind, connect: unix_dgram_connect, socketpair: unix_socketpair, accept: sock_no_accept, getname: unix_getname, poll: datagram_poll, ioctl: unix_ioctl, listen: sock_no_listen, shutdown: unix_shutdown, setsockopt: sock_no_setsockopt, getsockopt: sock_no_getsockopt, sendmsg: unix_dgram_sendmsg, recvmsg: unix_dgram_recvmsg, mmap: sock_no_mmap, sendpage: sock_no_sendpage,};
这里的冒号是赋值吗?
为什么最后还有一个逗号 sendpage: sock_no_sendpage,
[解决办法]
第一个是位域,第二个是结构体变量始化。
[解决办法]
- Assembly code
struct pmem_bits { unsigned allocated:1; /* 1 if allocated, 0 if free */ unsigned order:7; /* size of the region in pmem space */};
[解决办法]
一个是类型声明,一个定义变量,别搞混了。
[解决办法]