OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4102|回复: 4

问一个关于结构体和内存的问题。

[复制链接]

10

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2012-11-11
在线时间
3 小时
发表于 2013-10-15 15:11:19 | 显示全部楼层 |阅读模式
比如我重定义一个结构体

typedef struct
{
    u16 Value1;
    u16 Reserved[100];
    u16 Value2;
}ABC;

其中第二个参数Reserved[100]我是根本用不到的, 就是为了使结构体内存排列和某一外设地址排列保持一致。
但是这样定义就造成了内存的浪费。

怎么样定义或者是编译才能在不失去这个结构体的架构,又能让Keil在这100个数据区域内进行其他数据存储?









正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-15 15:44:48 | 显示全部楼层
把它当成全局变量用了。。^_^。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

16

主题

70

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2013-9-23
在线时间
0 小时
发表于 2013-10-15 15:48:12 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,你说楼主说的为了与某一外设地址排列保持一致一定要用结构体吗?还有什么好的方法没啊。比如指针
我自信,我努力,我成功
回复 支持 反对

使用道具 举报

10

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2012-11-11
在线时间
3 小时
 楼主| 发表于 2013-10-15 15:48:54 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
如果按照你说的 在这个内存里面定义其他全局变量和使用岂不是更麻烦
回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-10-15 16:15:34 | 显示全部楼层
不要定义变量, 而是用这个结构体定一个指针直接指向内存位置

typedef struct
{
    u16 Value1;
    u16 Reserved[100];
    u16 Value2;
}ABC;

ABC *p = (ABC *) ADDR; 
这样不用浪费内存
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-11 13:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表