搜索
bottom↓
回复: 13

成为一个单片机软件高手可能需要的技能(之一)

[复制链接]

出0入0汤圆

发表于 2007-2-19 07:47:42 | 显示全部楼层 |阅读模式
不敢自称作高手,但有些写程序的经验拿出来和大家分享



首先我希望大家明白,控制高手跟程序高手是两个概念



控制高手需要的是算法的功底,而程序高手需要的是设计及编码的功底



在我所在的团队中,这是两个角色,尽管有时是由一个人承担。



先来说说程序设计



如果你想写好程序,光是C/C++语法或汇编语法的熟练掌握那是没有用的,甚至说,语言的熟练和你实际的变成水平不一定有直接的关系



的确,一个语法纯熟的程序员在处理一个简单问题的时候可能会非常快速,但,那仅限于千行以内的小程序。



一旦你的程序规模上升到了几千行或者更多,你面临的问题将不再是使用的语言本身所具有的问题了,这时,你将需要以下的技巧来帮你解决问题



1、代码书写规范



可能很多人会奇怪,为什么我把代码书写规范放在了第一位。



其实答案很简单:规范代码的书写方式将是改变你代码质量最简洁有效的方法!它既不象设计模式、重构等技术那样需要丰富的经验,又不象极限编程那样难于投入实际应用,甚至比进行测试都来的容易。



一段规范整洁的代码,它的价值不是在于你第一次编译运行它的时候,而是在你第十次或是第二十次修改它的时候。试想面对一段没有缩进的,局部变量名全是x,y,z的程序,你如何维护?如果这时你遇到了解决不了的问题,你又如何拿着这样的代码咨询高手?



的确,作为单片机程序员,我们追求的不是什么程序的美感,更不是什么华丽的程序设计技巧,我们需要的是完成工作——以最短的时间让机器动起来!在这样追求开发效率的前提下,在代码的规范上浪费时间岂不滑稽可笑?



其实,你错了。或许有时你的人品极好,程序一次通过。但仔细回想,难道不是绝大多数程序都是在代码完成之后进行了相当长的调试么?你在编码过程中那点点滴滴的细心,难道不会大幅的缩短你的调试时间么?



代码书写规范中包含的内容并不多,其中最重要的就是缩进/空格的使用和命名规范。



举例来说,你可以要求自己书写代码的时候将标记状态的标志位都命名成以Is开头,可以想想,



if( IsRunning ){ ... }



看起来一定要比



if(f1){...}



来的直观吧.



再比如,你可以要求自己为所有的常数声明常量,如:



if( i < MAXPLAYERCOUNT ) { ... }



一定比



if ( i < 12 ){ ... }



在调试的时候更让你清楚知道自己在干什么吧







现在流行的代码风格有很多,在各种书籍上也都能找到,有兴趣的朋友可以选择一些尝试一下,不过最好注意:首先代码风格要是较新的,现在网上有很多老掉牙的风格规范是针对以前编辑器制定的,已经没有人使用了。再有就是要适合你所在的团队,比如团队中所有人都已经习惯了左花括号另起一行



if( i < j )



{



     .......



}



那要求他们使用左花括号跟上行可能并不合适(我的团队现在使用的就是这种风格)



if( i < j ){



    ........



}







(未完待续,如果大家有兴趣可以来我的博客看看,虽然刚刚开始写,但我会坚持更新的



http://hi.baidu.com/barrin)

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2007-2-19 11:56:19 | 显示全部楼层
不错,收益匪浅

出0入0汤圆

 楼主| 发表于 2007-2-20 00:27:26 | 显示全部楼层
没人顶啊~真伤心

出0入0汤圆

发表于 2007-2-21 17:53:22 | 显示全部楼层
不错! 我给你顶

出0入0汤圆

发表于 2007-2-21 21:20:26 | 显示全部楼层
垃圾帖子 ,空洞無味, 沒有一點意義.

出0入0汤圆

发表于 2007-2-23 12:56:25 | 显示全部楼层
呵呵,可以看看华为的编程规范。

出0入0汤圆

发表于 2012-9-3 14:52:37 | 显示全部楼层
好文章啊

出0入0汤圆

发表于 2012-9-3 15:20:58 | 显示全部楼层
LZ 不错,学习了

出0入0汤圆

发表于 2012-9-3 17:27:31 | 显示全部楼层
学习了

出0入0汤圆

发表于 2012-9-3 18:15:43 | 显示全部楼层
这帖子的排版不怎么样呀。

出0入8汤圆

发表于 2012-9-3 18:36:35 | 显示全部楼层
“使用左花括号跟上行”使用周工的TSKstudio就是这样风格,用起来真的不习惯!!

出0入0汤圆

发表于 2012-9-3 18:38:20 来自手机 | 显示全部楼层
俺不占成楼主的某些关点,我觉得学好语言是基础!根基不牢,盖不成高楼的。嵌入c除了语法,还应包括c运行时环境的理解,比如:参数传递,运行时库等,这些都和具体的编译器相关。

出0入0汤圆

发表于 2012-9-3 18:41:45 | 显示全部楼层
不得不说,我虽未参透,不过lz说的只是技巧而已!
软件设计,远非这些啊!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-15 19:04

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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