位字段的那些事情

位字段的那些事儿

虽然在一般的PC编程中主要使用基本类型。但是如果涉及到嵌入式开发编程,位字段能够更好地节省存储空间,并且设置方便。


关于位字段的一些特点与注意事项本文使用以下代码作为实例:


GCC编译结果如下



从以上的代码和结果关于位字段的使用总结以下几点:

1、在进行位字段定义的时候,两种BitStruct_1和BitStruct_2两种形式都可以。注意到bs_1占8个字节,只写一个int并不代表强制将所有位存储在一个字段,编译时并不报错或警告,自动将多出的字段放到下一个int区。


2、位字段的初始化和一般结构体的初始化没有区别。也可以采用单个赋值的方式。


3、位字段的格式化输出采用基本类型的类型限定符即可。


4、位字段的赋值一定要注意溢出的问题。上面的例子在bs_2.show故意设置了溢出值,我们发现,溢出后的位字段在这个例子中始终被设置为-1。


5、只能在结构体中设置位字段,如果在函数中设置位字段,编译时将产生一条错误信息。


(完)