关于struct的使用问题

2019-08-06 13:48发布

使用struct可以使数据结构更加清晰,看起来很不错,但是好像会增加很大的运行时间开销,比如,在CCS5下,编C2000系列的代码,
如果 a = 1,则汇编是一个语句,仅一个机器周期;
如果使用了struct,比如 struct.a = 1,就是两条汇编语句,两个周期;
如果是使用了指针,比如 struct->a = 1,就是3条汇编,3个周期了。
我的程序为了实现通用性,减少代码量,使用大量的函数,参数都是结构体指针,也就是整个程序基本就是架在结构体上的,现在总体运行效率很不满意,在网上搜索了一下,也没见到什么讨论struct优化速度的,不知各位高手对这个问题有什么看法,是否有什么好的折中方案?我以前都是写计算机上的小程序,对这类效率问题根本不在乎,现在写硬件才发觉问题很大。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
dirtwillfly
1楼-- · 2019-08-06 15:46
貌似楼主的程序都是上位机编程的思路。在单片机上,可以用#define来实现更好的移植性
dirtwillfly
2楼-- · 2019-08-06 17:49
hh312
3楼-- · 2019-08-06 23:11
dirtwillfly 发表于 2014-2-16 21:21
可以参考:http://bbs.21ic.com/icview-663790-1-1.html

非常感谢!但#define这个貌似关系不大。您说得很对,我比较趋向高级语言的编程习惯,VB.net用得比较熟,我的程序可能用class封装会比struct更完美,但是C++的运行速度是不是更低了?而且C2000好像没支持C++。

我的程序其实就是一块芯片控制多个电机,每个电机的运行控制函数基本一样,参数也基本一样,所以一开始就考虑做尽量少的函数,每个电机的参数封装成struct,逐个送入函数取处理,这样看起来结构是清晰,代码量也少,但是刚刚发现struct的指针调用居然是普通变量的3倍时间。

coslight
4楼-- · 2019-08-07 02:11
 精彩回答 2  元偷偷看……
xiongxiao
5楼-- · 2019-08-07 07:58
mark
firstblood
6楼-- · 2019-08-07 09:44
我来学习参考的了:):loveliness:

一周热门 更多>