关于struct的使用问题

2019-08-06 13:48发布

使用struct可以使数据结构更加清晰,看起来很不错,但是好像会增加很大的运行时间开销,比如,在CCS5下,编C2000系列的代码,
如果 a = 1,则汇编是一个语句,仅一个机器周期;
如果使用了struct,比如 struct.a = 1,就是两条汇编语句,两个周期;
如果是使用了指针,比如 struct->a = 1,就是3条汇编,3个周期了。
我的程序为了实现通用性,减少代码量,使用大量的函数,参数都是结构体指针,也就是整个程序基本就是架在结构体上的,现在总体运行效率很不满意,在网上搜索了一下,也没见到什么讨论struct优化速度的,不知各位高手对这个问题有什么看法,是否有什么好的折中方案?我以前都是写计算机上的小程序,对这类效率问题根本不在乎,现在写硬件才发觉问题很大。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
hh312
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倍时间。

一周热门 更多>