OpenEdv-开源电子网

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

怎样写c代码才能让程序的执行效率更高?

[复制链接]

67

主题

151

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
446
金钱
446
注册时间
2011-11-15
在线时间
4 小时
发表于 2012-4-25 16:43:14 | 显示全部楼层 |阅读模式
怎样写c代码才能让程序的执行效率更高?

同样结构和功能的代码,只是其中的变量的定义方式不同,但程序的执行效率却又天壤之别!能相差10倍!!!
所以,想问问怎样写代码,可以让代码的执行效率更高?

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-4-25 22:04:39 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

67

主题

151

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
446
金钱
446
注册时间
2011-11-15
在线时间
4 小时
 楼主| 发表于 2012-4-26 13:03:09 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
g_stTPM[TpmNum].Test++;
g_stTPM[TpmNum].Capture[ChalNum].CapNum++;

经过测试第二个语句的执行时间是第一个语句执行时间的5倍。
为什么?
回复 支持 反对

使用道具 举报

36

主题

1105

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2201
金钱
2201
注册时间
2012-2-8
在线时间
35 小时
发表于 2012-4-26 13:20:15 | 显示全部楼层
回复【3楼】teclimber:
---------------------------------

第二个语句需要解引用两个指针呀,时间长点很正常啊

不满意你可以学汇编啊。。。
https://github.com/roxma
回复 支持 反对

使用道具 举报

2

主题

1447

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2258
金钱
2258
注册时间
2010-12-16
在线时间
206 小时
发表于 2012-4-26 19:07:48 | 显示全部楼层
的确是要两个指针。。。

这么写代码的好处是可读性高,缺点就是取指麻烦。。

如果要在这个基础上提高速度,只能整体配合,比如操作密集的变量使用局部变量,或者使用多个结构体。但使用不同的结构体可能会造成理解混乱。
技术讨论请发帖 , 需要我回复请点左下的 < 回复 > 让系统通知我 . 本人不通过其他方式返回任何参数.
回复 支持 反对

使用道具 举报

67

主题

151

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
446
金钱
446
注册时间
2011-11-15
在线时间
4 小时
 楼主| 发表于 2012-4-27 08:54:46 | 显示全部楼层
确实啊,以前没怎么关注这些,现在发现这些东西很重要啊!后来改用指针操作情况就好多了!
回复 支持 反对

使用道具 举报

27

主题

274

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
472
金钱
472
注册时间
2011-11-2
在线时间
11 小时
发表于 2012-4-29 19:47:21 | 显示全部楼层
回复【4楼】Pony279:
---------------------------------
刚才看了你传的《51单片机技术与应用系统开发案例精选》受益匪浅了。
再此感谢下。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-22 20:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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