位字段的那些事情
位字段的那些事儿
虽然在一般的PC编程中主要使用基本类型。但是如果涉及到嵌入式开发编程,位字段能够更好地节省存储空间,并且设置方便。
关于位字段的一些特点与注意事项本文使用以下代码作为实例:
GCC编译结果如下
从以上的代码和结果关于位字段的使用总结以下几点:
1、在进行位字段定义的时候,两种BitStruct_1和BitStruct_2两种形式都可以。注意到bs_1占8个字节,只写一个int并不代表强制将所有位存储在一个字段,编译时并不报错或警告,自动将多出的字段放到下一个int区。
2、位字段的初始化和一般结构体的初始化没有区别。也可以采用单个赋值的方式。
3、位字段的格式化输出采用基本类型的类型限定符即可。
4、位字段的赋值一定要注意溢出的问题。上面的例子在bs_2.show故意设置了溢出值,我们发现,溢出后的位字段在这个例子中始终被设置为-1。
5、只能在结构体中设置位字段,如果在函数中设置位字段,编译时将产生一条错误信息。
(完)