c的一个语法问题
今日读一个开源软件的代码(c),发现有一个变量声明很奇怪,不知是什么意思,如下:
unsigned long tid_line:9;
我不知道冒号和那个9是什么意思,哪位大侠指点下。
[解决办法]
百度:位域
[解决办法]
位段类型
一个冒号和一个整数,这个整数指定该位段所占用的位的数目。
[解决办法]
这个是位段或称位域,示例如下
struct st
{
int i:2;
int j:2;
int k:4;
}
后面的数字表示所占的bit位数,如i占2位,我们可以按照结构体的方式来访问,位域的作用是节约资源,更重要的是对于那些利用移位的操作如果用位域实现更高效简单。