C语言程序编写规范杭州达峰电子有限公司内部资料1/35C语言程序编写规范(草稿)版本号:0.9.5编制人:全永兵修改日期:2010-06-02浙江达峰科技有限公司C语言程序编写规范杭州达峰电子有限公司内部资料2/35目录1箴言..........................................................................................................................................32本方案设计目标.......................................................................................................................43程序编写规范...........................................................................................................................53.1命名规范...................................................................................................................63.1.1通则...................................................................................................................63.1.2文件名命名规范...............................................................................................63.1.3函数名命名规范...............................................................................................73.1.4变量名命名规范...............................................................................................73.1.5宏定义命名规范...............................................................................................83.2注释规范.................................................................................................................103.2.1总体原则.........................................................................................................103.2.2文件注释内容.................................................................................................103.2.3模块注释内容.................................................................................................113.2.4函数注释.........................................................................................................113.2.5程序中的注释内容.........................................................................................123.3编程风格.................................................................................................................153.4质量保证.................................................................................................................213.5程序效率.................................................................................................................233.6模块(文件)划分规范..............................................................................................264主程序框图............................................................................................................................305变量名、模块名称英文缩写.................................................................................................34C语言程序编写规范杭州达峰电子有限公司内部资料3/351箴言程序设计绝对是一门艺术,而不仅仅是一门技术。首先程序设计的出发点是,是给别人看,可读、易理解、好维护,如果你的程序只能自己来维护,到你离开这个程序时,你程序也就与你一起离开了这个世界。为了可读、易理解、好维护,你的程序要有好的设计,而不是一接手就进行东抄抄、西抄抄的写代码工作。写代码是一个工程,程序设计是一种艺术;如果程序员只注重代码,那就象盖房子时的砌砖匠,只知道照图施工而已。世界那么多令人叹为观止的美丽建筑物,那是设计家的艺术杰作,而不是砌砖匠的艺术杰作。KeepItEasyReadandRight(FROMIBMREADBOOKS)Sometimesgoodstyleandefficientruntimeperformancedonotmix.Whereveryoufaceaconflictbetweenthetwo,choosegoodstyle.Hard-to-readprogramsarehardtodebug,hardtomaintain,andhardtogetright.Programcorrectnessmustalwayswinoutoverspeed.Makeitrightbeforeyoumakeitfaster.Keepitrightwhenyoumakeitfaster.Makeitclearbeforeyoumakeitfaster.Donotsacrificeclarityforsmallgainsinefficiency.KeepItSimleandStupidKnowledgeIntergrationisSupperSkillWhatIhearIforget,WhatIseeIremember,WhatIdoIunderstand.whateverstyleyouuse,pleaseuseitconsistently,sinceamixtureofstyleswithinoneprogramtendstolookugly.Ifyouarecontributingchangestoanexistingprogram,pleasefollowthestyleofthatprogram.C语言程序编写规范杭州达峰电子有限公司内部资料4/352本方案设计目标(1)规范性:做到从变量命名、函数命名到模块划分全部有规范可依,使非编程本人也可以正确、快速、无误地修改软件,使公司真正能保留住技术;(2)硬件无关性:与硬件有关的函数单独处理,而主程序则通过调用这些函数来对MCU端口进行操作,这样无论使用什么MCU,只要支持C语言,都可以很快地将程序移植过来,使软件不再受MCU的控制;(3)可扩展性:流程确定后,如果有新的模块加入,不会改动整个系统流程,只需在程序中加入此模块的调用,修改与此模块有关的函数即可;(4)模块化:将整个软件程序分为若干个模块,模块之间通过全局变量相连,只要确定了模块的输入/出变量以及模块流程,此模块在经过详细测试后便可保证不再出错,如有新的程序需要编写,只需编写新的模块即可,真正使软件错误不会重复出现;(5)可移植性:本方案中所定义的模块可以嵌入至任意一个系统,在编制一个新的系统前,首先将与系统有关的函数调用过来即可,因此本方案中的很多内容不但适合空调系统,同时也可直接调入其他系统中;C语言程序编写规范杭州达峰电子有限公司内部资料5/353程序编写规范编程首要是要考虑程序的可行性,然后是可读性、可移植性、健壮性以及可测试性。这是总则。但是很多人只完成了程序的基本功能,即只完成了可行性,忽略了可读性、可移植性和健壮性,这给日后的调试和维护带来非常大的困难。为了提高程序的可读性,就必须遵从一定的规范来编写程序。可移植性也可以使你在编写类似的程序的时候起到事半功倍的效果。也许开始的时间按规范编写程序会很不习惯,但要记住:如果没有很好的命名规范和很好编程风格,即使是你自己编的程序,日后读起来也会一样的困难;而好的命名规范和很好编程风格将使你在调试程序时做到一目了然,从而减少了调试时间。本规范规定了包括命名规范、注释规范、编写风格等内容。程序编写人在编写程序时要严格遵照此规范进行。以下内容摘自清华大学网络研究室《C语言编程讲义》鲁棒-SolidandRobustCode简洁-MaintainableandSimpleCode高效-FastCode简短-SmallCode共享-Re-usableCode可测试-TestableCode可移植-PortableCode(“写好代码的10个秘诀”-微软,林斌)WhereGoodCodescomefrom?ThepursuitofperfectionResponsibleforyourcodeIt’smybabyThecodeisnotwrittenforyourselfToworkwithotherpeopleTosharewithotherpeopleWorkhard,andworksmartlyThinkmore,codelessTrytousemoretoolsWhyMicrosoftissorich?5000peopleworktogether(Windows2000)50,000,000linesofcode(Windows2000)aopenenvironmentSharegoodideaswithotherpeopleThereisnofreemeal!ExperienceismoreimportantGooddesigncomesfromgooddesignerSeniorprogrammer:5yearsTeamleader:10yearsNoendforperfection以上