天梯 之 从零开始玩PIC——7.位变量的定义与引用
来源 CEPARK网站http://www.cepark.com/Index.html
再次遭遇非典(匠人被一个小小的分号绊倒了):位变量的定义与引用?
先看看匠人的程序:
//--------------------------------------------------------
//重新命名数据类型
//--------------------------------------------------------
typedef unsigned char tU08; //unsigned 8
//=================
//位结构类型定义
//定义一个位结构,结构名=BIT_F
//=================
typedef struct {
unsigned b0 : 1; //结构元素表
unsigned b1 : 1;
unsigned b2 : 1;
unsigned b3 : 1;
unsigned b4 : 1;
unsigned b5 : 1;
unsigned b6 : 1;
unsigned b7 : 1;
} BIT_F; //结构类型
//=================
//联合定义
//定义一个联合,联合名=FLAG_union
//=================
typedef union {
BIT_F oneBit;
tU08 allBits;
}FLAG_union;
//--------------------------------------------------------
//
FLAG_union PORTC_TEMP; //PORTC 口输出临时缓冲区
#define PORTC_TMP PORTC_TEMP.allBits
#define LED00_TMP PORTC_TEMP.oneBit.b3; (请注意,这里多了一个分号,匠人就是被这个不起眼的分号给绊倒的!)
//--------------------------------------------------------
//接下来两条是程序中的指令
//--------------------------------------------------------
PORTC_TMP = 0 ; //不报错
PORTC_TEMP.oneBit.b3 = 1 ; //不报错
LED00_TMP = 1 ; //报错(信息:Error[195] H:\pic\clolk_01\clock.c 224 : expression syntax)
//--------------------------------------------------------
请注意红色字体部分,该语句应该是等效于蓝色字体的吧?但是编译就是通不过?
上网查了一下,居然发现hotpower早在2004年已经修炼过此非典****了。看来要再次请教hotpower。把你的脑髓贡献一下吧……
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。