中帝威Keilc编程规范

上传人:xt****7 文档编号:144383938 上传时间:2022-08-27 格式:DOC 页数:9 大小:76.51KB
收藏 版权申诉 举报 下载
中帝威Keilc编程规范_第1页
第1页 / 共9页
中帝威Keilc编程规范_第2页
第2页 / 共9页
中帝威Keilc编程规范_第3页
第3页 / 共9页
资源描述:

《中帝威Keilc编程规范》由会员分享,可在线阅读,更多相关《中帝威Keilc编程规范(9页珍藏版)》请在装配图网上搜索。

1、 中帝威C51编程规范(2010.11.02)在项目的开发中,同一个项目的不同模块可能涉及不同成员来开发。养成一个良好的编程习惯,各成员按照同一个规范来开发项目,有助于后期工程的整合及彼此间意见的交流。在此制定此规范,供各位进行参考。 一 标志符命名法 变量: 变量的定义由两部分组成,用 “ _ ” 分开,前半部分说明作用域,后半部分用小写字母说明类型,之后是一个大写字母开头的变量名称,如下: (作用域)_ (数据类型)(大写字母开始的名称)作用域: 1、全局变量: g ; 2、模块变量(在一个模块中公用的变量): m ; 3、局部变量无此信息。数据类型:1、字符:ch; 2、无符号字符uc;

2、 3、整型:i; 4、无符号整型: ui;5、长整型:l; 6、无符号长整型:ul; 7、浮点数:f; 8、无符号浮点数:uf;9、位变量:b; 10:指针变量:p。【规则1-1】命名应当直观且可以拼读,可望文知意,便于记忆和阅读。标识符最好采用英文单词或其组合,不允许使用拼音。程序中的英文单词一般不要太复杂,用词应当准确。【规则1-2】当标识符由多个词组成时,每个词的第一个字母大写,其余全部小写。比如:int iCurrentValue;int iCurrentState;或者每个单词之间用下划线分割开,比如:int iCurrent_Value;int iCurrent_State;这样的

3、名字看起来比较清晰,远比一长串字符好得多。【规则1-3】对在多个文件之间共同使用的全局变量或函数要加范围限定符(建议使用模块名(缩写)作为范围限定符)。比如,在key.c中定义一个全局变量:unsigned char g_ucKeyNum; /按下的键号码。Unsigned char g_ucKeyState;/【规则1-4】程序中不要出现仅靠大小写区分的相似的标识符。 例如:int x, X; /* 变量x 与X 容易混淆*/ void foo(int y); /* 函数foo 与FOO 容易混淆*/void FOO(float y);用正确的反义词组命名具有互斥意义的变量或相反动作的函数等

4、。例如:int MinValue;int MaxValue;int MinValue(void);int MaxValue(void);标识布尔型的变量或函数名称一般使用is作为前缀。例如:void isFull();注意:1 变量名的声明应该是每行一个变量,不要在一行声明多个变量。2 变量尽量在定义的时候就进行初始化。函数名:函数名应用相应文件名作为前缀。每个词的第一个字母大写。例如,所有文件KEY.C中的函数和所有VIDEO.C中的函数都可以定义成如下形式:补充:单词之间也可加下划线割开。KEY.CKeyGetChar()KeyGetLine()或者Key_Get_Char()Key_Ge

5、t_Line()VIDEO.CVideoGetAttr()VideoPutChar()或者Video_Get_Attr()Video_Put_Char()二 定义语句1常数和宏定义要用大写,相应的词用下划线分开。例如:#define KEY_CR 0x0D#define KEY_START 0x01三 程序版式3.1 空行(4条规则)空行起着分隔程序段落的作用,空行得体将使程序的布局更加清晰。空行不会浪费内存,所以不要舍不得用空行。【规则3-1-1】在函数内部局部变量定义结束之后处理语句之前要加空行。【规则3-1-2】在每个函数定义结束之后都要加空行。参见示例3-1(a)。【规则3-1-3】函

6、数返回语句和其他语句之间使用空行分开。【规则3-1-4】在一个函数体内,逻辑上密切相关的语句之间不加空行,其它地方应加空行分隔。参见示例3-1(b)。/-xxx BEGIN /Start-/ 空行void Function1( ) / 空行void Function2( ) / 空行void Function3( ) / 空行while( condition )statement1;/ 空行if ( condition )statement2;elsestatement3;/ 空行statement4;例如:示例3-1(a) 函数之间的空行 示例3-1(b) 函数内部的空行3.2 代码行(5条

7、规则1条建议)【规则3-2-1】一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且方便写注释。【规则3-2-2】if、for、while、do 等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加表明是一个语句块。【规则3-2-3】一对花括号要单独各占一行。但是在do-while、struct和union及其后有;的除外,要同在一行。【规则3-2-4】switch语句中的每个case语句各占一行,当某个case语句不需要break语句最好加注释声明。【规则3-2-5】并列的语句行应该按照字母顺序排序,如变量定义和switch中的case语句等。do wh

8、ile(i0);【建议3-2-1】尽可能在定义变量的同时初始化该变量(就近原则),如果变量的引用处和其定义处相隔较远,变量的初始化很容易被忘记。如果引用了未被初始化的变量,可能会导致程序错误。本建议可以减少隐患。例如:int width=20; /* 定义并初绐化width*/int height=20; /* 定义并初绐化height*/int depth=20; /* 定义并初绐化depth*/风格良好的代码行风格不良的代码行int width; /* 宽度*/int height; /* 高度*/int depth; /* 深度*/int width, height, depth; /*

9、 宽度高度深度*/x=a+b;y=c+d;z=e+f;x=a+b;y=c+d;z=e+f;if( width height )dosomething();Elseif( width =”、“=”、“+”、“*”、“%”、“&”、“|”、“”这类操作符前后不加空格。 例如:big.bar, pFile-bar, bigbar【建议3-3-1】对于表达式较长的for语句和if语句,为了紧凑起见可以适当地去掉一些空格.例如:for( i=0; i10; i+ )和if( (a=b) & (c= 2000 )if( (a=b) & (c=2000)if(a=b&c=d)for( i=0; i10; i

10、+ )for(i=0;i10;i+) for (i = 0; i 10; i +)x = a b ? a : b;x=aFunction();array 5 = 0;a.Function();b - Function();3.4 对齐(4条规则)【规则3-4-1】程序的分界符和应独占一行并且位于同一列,同时与引用它们的语句左对齐。【规则3-4-2】水平缩进每次使用四个空格即可(定义一个tab键为四个空格。有的要求缩进两个空格)。【规则3-4-3】同属于一个语句块的代码对齐。【规则3-4-4】 之内的代码块在右边一个tab键处左对齐。风格良好的对齐风格不良的对齐void Function(int

11、 x) program codevoid Function(int x)program codeif( condition ) program codeelse program codeif(condition)program codeelse program codefor( initialization; condition; update ) program codefor(initialization; condition; update)program codewhile( condition ) program codewhile(condition)program code如果出

12、现嵌套的,则使用缩进对齐,如: 3.5 长行拆分(2条规则)【规则3-5-1】代码行最大长度宜控制在70至80个字符以内。代码行不宜过长,否则不便于阅读,也不便于打印。【规则3-5-2】长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首(以便突出操作符)。拆分出的新行要进行适当的缩进,使排版整齐,语句可读。if( (very_longer_variable1 = very_longer_variable12 )& (very_longer_variable3 = very_longer_variable14)& (very_longer_variable5 1 ).#endif【规则3

13、-7-11】行末注释最好对齐。【规则3-7-12】应对包含的头文件进行行末注释。【建议3-7-1】函数的功能要单一,不要设计功能过于复杂的函数。【建议3-7-2】经常使用的重复代码用函数来代替。【建议3-7-3】函数体的规模要小,尽量控制在50 行代码之内。【建议3-7-4】尽量避免函数带有“记忆”功能。相同的输入应当产生相同的输出。函数的static 局部变量是函数的“记忆”存储器。建议尽量少用static 局部变量,除非必需。【建议3-7-5】不仅要检查输入参数的有效性,还要检查通过其它途径进入函数体内的变量的有效性。例如全局变量、文件句柄等。【建议3-7-6】用于出错处理的返回值一定要清

14、楚,让使用者不容易忽视或误解错误情况。【建议3-7-7】不要一味地追求程序的效率,应当在满足正确性、可靠性、健壮性、可读性等质量因素的前提下,设法提高程序的效率。【建议3-7-8】以提高程序的全局效率为主,提高局部效率为辅。【建议3-7-9】在优化程序的效率时,应当先找出限制效率的“瓶颈”,不要在无关紧要之处优化。【建议3-7-10】先优化数据结构和算法,再优化执行代码。【建议3-7-11】有时候时间效率和空间效率可能对立,此时应当分析哪个更重要,做出适当的折衷。例如多花费一些内存来提高性能等。【建议3-7-12】不要追求紧凑的代码,因为紧凑的代码并不能产生高效的机器码。【建议3-7-13】两函数之间可用/-或/-Begin- /-Over-分隔四 缩写在给变量和函数等标志符命名时,可以使用缩写,使用缩写可以用较少的字符描述标志符,但如果缩写的使用前后不一致,反而会造成更多的混乱。所以在工程中应确保缩写的前后一致性,因此在一个工程开始的时候,可以建立一张缩写表,当需要其他缩写时,就把他们填加到表中。如下:当英文单词太长需缩写时取前英文单词的前4个字母缩写表原单词缩写AddressAddrSourceSourDestinationDest.

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!