由于工控实时记录的数据较多,而且要求在复位后也不能丢失数据. 在短时内是可以靠系统残余的电能支撑使RAM数据得以保持.
所以它和我们编写PC软件有很大的区别---全局变量较多. 如果使用单独的变量,那么分类很不明确.
再者就是变量名的管理,由于C语言和C++不同,C++的变量都封装在各自的类中, 名称相同的变量由于类名的不同也就自动区分出来了.
而C只能搞结构体了,这和无成员函数的C++结构或类是等同的.
这就是很多人包括俺喜欢结构的原因吧.
再就是联合了,它可以帮助你的工作,少费些脑浆~~~
例如: union { volatile unsigned char SystemFlag; struct { unsigned char MainExecFlag: 1; unsigned char EInt0ExecFlag: 1; unsigned char EInt1ExecFlag: 1; unsigned char Timer0ExecFlag: 1; unsigned char Timer1ExecFlag: 1; unsigned char Timer2ExecFlag: 1; unsigned char UartTxExecFlag: 1; unsigned char UartRxExecFlag: 1; }; };
MainExecFlag=1; 等效为: SystemFlag |= (1 << _MainExecFlag);//#define _MainExecFlag 0
UartRxExecFlag=0; 等效为: SystemFlag &= ~(1 << _UartRxExecFlag);//#define _UartRxExecFlag 7
联合肯定方便些 |