这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 单片机编程的几种用法(二)

共2条 1/1 1 跳转至

单片机编程的几种用法(二)

助工
2015-05-05 17:34:17     打赏
三、用枚举数据类型来定义特定的状态

    在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个函数在操作过程中会返回几个特定的状态:操作成功,操作失败,忙,等等。如果我们直接在函数里用0,1和2来表示这三种状态,有时偶尔会出现数值与实际状态对不上号的情况,造成置状态和判断状态错误,那么我们可以在程序里用宏或者枚举来事先定义好这些状态。

如:用宏定义:

#define Sucess 0

#define Failure 1

#define Busy 2

用枚举

typedef enum { Sucess = 0, Failure , Busy } FlagStatus;

四、用共用体类型定义共享内存空间

共用体类型定义的数据是将多个成员共享同一内存空间,该空间的大小为最大成员的大小,其用法与结构体完全相同,但值得注意的是不能同时引用多个成员,在某一时刻只能使用其中之一成员。

在程序中如果全局变量比较多,包含几个结构和数组,如果这些全部定义的话势必会占大量的内存,有可能还会导致单片机内存不够,如果能让几个不同时用到的数组和结构变量共享一段内存,则能省出很多的内存空间。

比如以下输入输出若不同时进行,则可以共享同一段内存空间

union {

                   struct {

                            unsigned char   Flag;

unsigned char   Type;

                            unsigned char   State;

                            unsigned long   DataLen;                        

                            unsigned char Buffer[64];           

                   }DataOut;                                                                

                   struct {

                            unsigned char   Flag;

unsigned char   Type;

                            unsigned char   State;

                            unsigned long   DataLen;                        

                            unsigned char Buffer[64];  

                   } DataIn;                                                         

         } BOC;


专家
2015-05-05 20:43:09     打赏
2楼
谢谢分享,这些技术需要到一定时间才能用。

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]