IAR的位域可以这样定义:
#include<iom16.h>
union
{
unsigned char t;
struct
{ unsigned char t_bit0:1,
t_bit1:1,
t_bit2:1,
t_bit3:1,
t_bit4:1,
t_bit5:1,
t_bit6:1,
t_bit7:1;
};
};
void main(void)
{
t_bit0=1; //访问变量t的位
t_bit0=~t_bit0;
PORTB=t; //直接访问变量t
t=0;
}
但是我有个问题:
1:为什么里面只定义共用体和位域,不定义共用体变量?
试了一下只有在IAR中可以,并且IAR中的头文件就是这样用的。
是IAR进行了扩展?
如果这样IAR也太不标准了吧?CVAVR扩充了bit变量都说它不标准,那IAR呢?
请哪位解释一下 |