使用位段时的注意事项,如下的位段定义:
typedef struct sth1byte
{
unsigned char cIsShow : 1;
unsigned char cIsModal: 2;
unsigned char cReserve: 5;
}h1byte;
如果将内部的 unsigned char 定义改为 char 他们得到的值是不一样的,如下的赋值语句
h1byte var;
var.cIsShow = 1;
在 unsigned char 定义时,下面的判断是正确的
if(var.cIsShow == 1)
而改为 char 后,则判断
if(var.cIsShow == 1)
不正确,实际上 var.cIsShow 的值为 -1,这个要引起注意
使用位段时的注意事项
最新推荐文章于 2024-02-01 22:19:50 发布