这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » ADS1.2编译错误----padding inserted in struct

共5条 1/1 1 跳转至

ADS1.2编译错误----padding inserted in struct

菜鸟
2005-09-02 20:03:54     打赏

报错误:Warning: C2221W:padding inserted in struct 'SysmgrTag '

我定义的结构体如下:

typedef struct SysMgrTag SysMgr;
struct SysMgrTag { //系统管理对象的属性
QActive super_; // inherits from QActive
uint8_t tasknum__; //对象代号
uint8_t fatasknum; //上层菜单对象代号
uint8_t fapos; //上层图形菜单位置,0始
uint8_t wustate__; //记录活动用户
uint8_t factorynum[16]; //出厂编号
uint8_t equnum[16]; //设备号
Hdtsys wset; //记录基本设置
Hdtsmg suser; //系统用户
Hdtuser wuser[3]; //最多三用户
Hdtdbf datdbf[5]; //最多五基础数据
uint8_t wdatdbf__; //记录活动基础数据
uint8_t tcycle; //记录数据循环标记
uint8_t tempnpass[9]; //密码临时变量
uint8_t curuser; //当前用户,1为用户1…,9为系统用户
uint8_t isformat; //0未格式化,1已格式化
uint8_t IrDA_MODE; //0-通过基座传输;1-双机对传 ;
uint8_t IrDA_BAUD; //波特率值
uint8_t rec_count; //记录在用的数量
uint8_t osVersion[8]; //内核版本
uint8_t rec_Cas[5]; //记录选取的顺序
uint8_t apadx1_;
uint8_t apadx2_;
uint8_t apadx3_;
uint32_t f_allspace; //记录剩余空间数,单位字节

};

应该是结构体的占用空间不是16位的整数倍?

但我在结构体里加入 uint8 temp[1] 、uint8 temp[2] 、uint8 temp[3] 、依次增加都不见效果,仍然抱这个警告。不知何故?




关键词: ADS1.2     编译     错误     ----padding         

菜鸟
2005-09-02 21:43:00     打赏
2楼
以下是引用flyingbxf在2005-9-2 12:04:00的发言:

应该是结构体的占用空间不是16位的整数倍?

不是。结构体中存在非对齐的成员。

菜鸟
2005-09-02 23:44:00     打赏
3楼
以下是引用ryansheng在2005-9-2 13:43:00的发言:
不是。结构体中存在非对齐的成员。

非对齐的成员??怎么才算对齐呢?变量类型最小单位就是uint8类型的8位啊


菜鸟
2005-09-07 17:19:00     打赏
4楼

up 一下


菜鸟
2005-09-08 19:08:00     打赏
5楼

共5条 1/1 1 跳转至

回复

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