打印
[C语言]

结构体问题,求高手指点迷津

[复制链接]
1282|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wt1987529|  楼主 | 2013-12-25 17:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
znmcu| | 2013-12-25 17:05 | 只看该作者
当然有影响,影响代码量。

使用特权

评论回复
板凳
wt1987529|  楼主 | 2013-12-25 17:15 | 只看该作者
znmcu 发表于 2013-12-25 17:05
当然有影响,影响代码量。

个人认为结构体只是增加单片机的RAM区。对ROM区怎么会有影响?所有的全局变量都是用结构体中的某一位成员。原本已调试好的40K的程序,在所有全局变量加结构体,代码行数不变编译显示代码达到70K,单片机无法烧录调试。求高手指点除了Code Bank有别的什么方法减小代码量么?

使用特权

评论回复
地板
john_lee| | 2013-12-25 18:32 | 只看该作者
根据 CPU 指令是否具有间接寻址(基址+偏移)的寻址方式,是否使用 struct 可能对代码大小的影响是:
使用 struct不使用 struct
有间接寻址代码小代码大
无间接寻址代码大代码小

使用特权

评论回复
5
ayb_ice| | 2013-12-26 08:09 | 只看该作者
程序都变了,代码变了不正常吗

使用特权

评论回复
6
sunhq02| | 2013-12-26 08:25 | 只看该作者
struct寻址比直接的全局变量寻址要多一些指令
所以代码量增加了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

粉丝