c语言位域的使用注意事项——数据溢出

c语言可以使用位域来节省变量的空间,例如开关只有通电和断电两种状态,用 0 和 1 表示足以,也就是用一个二进位。位域的取值范围非常有限,数据稍微大些就会发生溢出,这个字使用keil的使用,keil提示,溢出的警告,

因此不能忽视keil的任何警告,否则数据溢出了,你代码的功能是完不成的。

struct pack
{
unsigned a:12;  
unsigned  :20;//该位域成员不能使用,用于填充
unsigned c:6;  
};

 

另一种是可以拿来填充,因为存在内存对齐的原因。

相关推荐