[STC单片机] keil中使用结构体和共用体

[复制链接]
 楼主| cnlhq 发表于 2015-12-28 15:54 | 显示全部楼层 |阅读模式
本帖最后由 cnlhq 于 2015-12-28 15:55 编辑

struct myDefineSensor{
         uchar  Addr_H;                         //本组ID
         uchar  Addr_L;
         uchar ID0,STATUS0,TEMPH0,TEMPL0,ALERT0;
         uchar ID1,STATUS1,TEMPH1,TEMPL1,ALERT1;
         uchar ID2,STATUS2,TEMPH2,TEMPL2,ALERT2;
         uchar ID3,STATUS3,TEMPH3,TEMPL3,ALERT3;
         uchar ID4,STATUS4,TEMPH4,TEMPL4,ALERT4;
         uchar ID5,STATUS5,TEMPH5,TEMPL5,ALERT5;
        //uchar  dbBuffer[30];
        uchar  SaveTime;                  //本组数据有效时间
         uchar  upLmt;                         //是否存在超限
};
struct myDefineSensor xdata GroupSenTemp[CONST_MAXGROUP];

这是我的写法,有点笨,想请教高手指点一下,结构体中,是否能改成嵌入结构体/共用体型式
主要思路想把,6组ID和dbBuffer[30]共用一下
JasonWangSE 发表于 2015-12-28 16:18 | 显示全部楼层
typedef struct tempData
{
    uchar id;
    uchar status;
    uchar tempHi;
    uchar tempLo;
    uchar alert;
} TEMP_DATA;

typedef struct mySensor
{
    uchar addrHi;
    uchar addrLo;
    uion
    {
        TEMP_DATA data[6];
        uchar     buf;
    } temp;
    uchar validTime;
    uchar threshold;
} MY_SENSOR;

是这个意思么?
 楼主| cnlhq 发表于 2015-12-29 11:21 | 显示全部楼层
uion
    {
        TEMP_DATA data[6];
        uchar     buf;
    } temp;

这里是不是,BUF[30]?
JasonWangSE 发表于 2015-12-29 12:13 | 显示全部楼层
cnlhq 发表于 2015-12-29 11:21
uion
    {
        TEMP_DATA data[6];

是buf[30],我写错了
cov0xt 发表于 2015-12-29 13:09 | 显示全部楼层
我曾经写了个结构体数组,好不容易写完了,编译的时候,提示内存data不足……

:'( 白忙活了……
 楼主| cnlhq 发表于 2015-12-30 10:51 | 显示全部楼层
表示感谢了!:handshake

我的设备,比较麻烦,这里面和市场运作有关,呵呵

以前写的程序,现在看总是有很多不合适的地方,水平需要提高!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部