浅谈结构体及Linux下内存分配原则

2014-11-24 10:41:32 ? 作者: ? 浏览: 0

结构体在程序中的应用是很广泛的,要处理的问题越复杂,数据量越多月杂,就越需要用到结构体。比如网络,内核,驱动等等。熟练使用结构体对每个程序员都是至关重要的。一个好的结构体不仅能使程序体系结构清晰,而且使得操作灵活,可扩展性强。linux网络之所以很强大,这和它里设计合理的数据结构有很大关系。


结构体定义:


结构体初始化:


方式一:


方式二:


方式三:


struct a dd={4,2};


在定义中,可以限制变量的位的作用域,比如上面的:int xx:4;这表明xx的有效域只有4位,也就是能给他赋值的最大值为15,如果超过这个值,编译器就会报错:warning: overflow in implicit constant conversion。


在这里如果你给xx赋值为15,如:


然后输出:


printf("cc.xx = %d\n",cc.xx);


结果会是:-1


因为这里定义的xx为int 型,15的二进制位1111,最高位为1,表示为负数,所以取反加1后为0001。所以是-1。


这种位域操作的好处是当你不需要用到你定义的类型的长度时,可以加位域操作以节省内存空间。


-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: