当前位置: 技术问答>linux和unix
冒号的问题
来源: 互联网 发布时间:2017-01-28
本文导语: struct pmem_bits { unsigned allocated:1; /* 1 if allocated, 0 if free */ unsigned order:7; /* size of the region in pmem space */ }; 正在学习Android源码 看到这样的冒号的用法,请问是赋值吗?还是位结构? 还有像这样的linux内核代码里...
struct pmem_bits {
unsigned allocated:1; /* 1 if allocated, 0 if free */
unsigned order:7; /* size of the region in pmem space */
};
正在学习Android源码
看到这样的冒号的用法,请问是赋值吗?还是位结构?
还有像这样的linux内核代码里的:
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,
|
第一个是位域,第二个是结构体变量始化。
|
struct pmem_bits {
unsigned allocated:1; /* 1 if allocated, 0 if free */
unsigned order:7; /* size of the region in pmem space */
};
这个是定义变量,定义1个bit 和7个bit的内存空间。
|
一个是类型声明,一个定义变量,别搞混了。
|
是的