单片机的RAM是非常少的,像新唐,STC,合泰等一些国产的51单片机,RAM 512 byte,1k,2k,非常常见,
有时候我们的串口接收一串数据,或AD连续采集,这些数据是不能放到 flash 里的,没办法,只能想法节约一些变量空间了.
标志位很多时候只有两种状态,就像bool型一样,真/假,这样的话,我们可以用下面的方式定义,
1 typedef union uFLG{ 2 char Flg ; //定义整形数据 联合体成员 3 struct FLAG{ //位域定义 4 u8 Flg1 : 1; 5 u8 Flg2 : 1; 6 u8 Flg3 : 1; 7 u8 Flg4 : 1; 8 u8 Flg5 : 1; 9 u8 Flg6 : 1; 10 u8 Flg7 : 1; 11 u8 Flg8 : 1; 12 }tFlg; 13 }uFlg; 14 15 uFlg uF1; //定义联合体变量