单片机 bdata 定义变量位操作

来源:百度知道 编辑:UC知道 时间:2024/06/25 05:58:34
unsigned char bdata over_byte;
{over_byte^0=1;}
怎么使over_byte^0=1 ?
没法通过啊!

unsigned char bdata over_byte;
sbit over_flag=over_byte^0;
over_flag=1;

绝对通过

unsigned char bdata over_byte;
sbit over_byte0=over_byte^0;
sbit over_byte1=over_byte^1;
sbit over_byte2=over_byte^2;
sbit over_byte3=over_byte^3;
sbit over_byte4=over_byte^4;
sbit over_byte5=over_byte^5;
sbit over_byte6=over_byte^6;
sbit over_byte7=over_byte^7;

over_byte0=1;

这个当然没法通过。赋值号“=”左边只能是变量,怎么是表达式呢?
要让over_byte和0异或等于1,就必须使over_byte等于1.不知阁下是怎么想的?

over_byte^0这是个表达式:取变量over_byte第一位
C语言规定"="的左边必须是变量不能是表达式
所以必须位定义 sbit over_byte0=over byte^0;