- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言编程规范教材及练习(标识符命名与定义 变量 宏、常量 表的达式)
C语言编程规范教材C语言编程规范工作组 201104目录标识符命名与定义 变量宏、常量表达式标识符的命名要清晰原则3.1 标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。尽可能给出描述性名称,不要节约空间,让别人很快理解你的代码更重要示例:好的命名:int num_errors; int num_completed_connections; 不好的命名:使用模糊的缩写或随意的字符: int n; int nerr; int n_comp_conns; 不使用单词缩写Page 原则3.2 除了常见的通用缩写以外,不使用单词缩写,不得使用汉语拼音。较短的单词可通过去掉“元音”形成缩写,较长的单词可取单词的头几个字母形成缩写,一些单词有大家公认的缩写,常用单词的缩写必须统一。协议中的单词的缩写与协议保持一致。对于某个系统使用的专用缩写应该在注视或者某处做统一说明。示例:一些常见可以缩写的例子:argument 可缩写为 argbuffer 可缩写为 buf产品/项目组统一的命名风格Page 规则3.1 产品/项目组内部应保持统一的命名风格。Unix like和windows like风格均有其拥趸,产品应根据自己的部署平台,选择其中一种,并在产品内部保持一致。unix like风格:单词用小写字母,每个单词直接用下划线‘_’分割,例如text_mutex,kernel_text_addressWindows风格:大小写字母混用,单词连在一起,每个单词首字母大写。不过Windows风格如果遇到大写专有用语时会有些别扭,例如命名一个读取RFC文本的函数,命令为ReadRFCText,看起来就没有unix like的read_rfc_text清晰了。通用命名规则Page 建议3.1 用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。建议3.2 尽量避免名字中出现数字编号,除非逻辑上的确需要编号。建议3.3 标识符前最好不加模块、项目、产品、部门的名称。建议3.4 平台/驱动等适配代码的标识符命名风格保持和平台/驱动一致。建议3.5 重构/修改部分代码时,应保持和原有代码的命名风格一致。文件命名采用小写字符。Page 建议3.6 文件命名统一采用小写字符。因为不同系统对文件名大小写处理会不同(如MS的DOS、Windows系统不区分大小写,但是Linux系统则区分),所以代码文件命名建议统一采用全小写字母命名。变量命名要求Page 规则3.2 全局变量应增加“g_”前缀。规则3.3 静态变量应增加“s_”前缀。规则3.4 禁止使用单字节命名变量,但允许定义i、j、k作为局部循环变量建议3.7 不建议使用匈牙利命名法建议3.8 使用名词或者形容词+名词方式命名变量。函数命名:采用动词或者动词+名词的结构Page 建议3.9 函数命名应以函数要执行的动作命名,一般采用动词或者动词+名词的结构。示例:找到当前进程的当前目录DWORD GetCurrentDirectory( DWORD nBufferLength, LPTSTR lpBuffer );宏的命名规则Page 规则3.5 对于数值或者字符串等等常量的定义,建议采用全大写字母,单词之间加下划线‘_’的方式命名(枚举同样建议使用此方式定义)。示例:#define PI_ROUNDED 3.14规则3.6 除了头文件或编译开关等特殊标识定义,宏定义不能使用下划线‘_’开头和结尾。练习判断题(在括号内打“√”或“×”)标识符的命名要清晰、明了。 ( )除了常见的通用缩写以外,不使用单词缩写。( )产品/项目组内部应保持统一的命名风格。 ( )禁止使用单字节命名变量,定义‘ii’使用就没有问题了。( )单选题下面几个变量的命名,最好的一个是( )。A、int num_errors;B、int n;C、int nerr;D、int n_comp_conns;Page 目录标识符命名与定义 变量宏、常量表达式变量职责单一原则4.1 一个变量只有一个功能,不能把一个变量用作多种用途。一个变量只用来表示一个特定功能,不能把一个变量作多种用途,即同一变量取值不同时,其代表的意义也不同。示例:具有两种功能WORD DelRelTimeQue(T_TCB *ptTcb){ WORD Locate;? Locate = 3; Locate = DeleteFromQue(Locate); /* Locate 具有两种功能:位置和函数DeleteFromQue的返回值 */ return Locate;}正确做法:使用两个变量WORD DelRelTimeQue(T_TCB *ptTcb ){ WORD Ret; WORD Loca
文档评论(0)