c语言最常用的命名规则,C语言常见命名规则.pdf

资料分享之学习笔记 1 C C C C语言常见命名规则语言常见命名规则语言常见命名规则语言常见命名规则 一 概述一 概述 比较著名的命名规则首推匈牙利命名法 这种命名方法是由 Microsoft 程序员查尔斯 西蒙尼 Charles Simonyi 提出的 其主要思想是 在变量和函数名中加入前缀以增进 人们对程序的理解 匈牙利命名法关键是 标识符的名字以一个或者多个小写字母开 头作为前缀 前缀之后的是首字母大写的一个单词或多个单词组合 该单词要指明变量 的用途 例如 lpszStr 表示指向一个以 0 结尾的字符串 sz 的长指针 lp 变量 骆驼 Camel 命名法近年来越来越流行 在许多新的函数库和 Java 这样的平台下使用 得当相多 骆驼命名法 正如它的名称所表示的那样 指的是混合使用大小写字母来构 成标识符的名字 其中第一个单词首字母小写 余下的单词首字母大写 例如 printEmployeePaychecks 函数名中每一个逻辑断点都有一个大写字母来标记 帕斯卡 Pascal 命名法与骆驼命名法类似 只不过骆驼命名法是第一个单词首字母小 写 而帕斯卡命名法则是第一个单词首字母大写 例如 DisplayInfo 和 UserName 都是采用了帕斯卡命名法 在 C 中 以帕斯卡命名法帕斯卡命名法和骆驼命名法骆驼命名法居多 事实上 很多程序设计者在实际命名时会将骆驼命名法和帕斯卡结合使用 例如变量名 采用骆驼命名法 而函数采用帕斯卡命名法 另一种流行的命名规则称为下划线命名法 下划线法是随着 C 语言的出现流行起来的 在 UNIX LIUNX 这样的环境 以及 GNU 代码中使用非常普遍 1 常量名用大写 太长时用下划线隔开 1 define MAX 2 define INCREMENT SIZE 2 变量名采用小驼峰形式书写 1 intfirst 2 float newElem 3 函数名 结构名和联合名采用大驼峰形式书写 1 void ClearList List L 2 3 4 5 intPutElem int elem 6 7 8 9 typedef struct LinkNode 10 11 intdata 资料分享之学习笔记 2 12 struct LinkNode next 13 LinkPoint 4 全局变量加前缀 g 其余特殊变量类似 本章所述的命名规则主要基于下划线命名法发展而来 二 各类命名规则 1 函数的命名 函数名使用下划线分割小写字母的方式命名 设备名设备名 操作名操作名 操作名一般采用 谓语 此时设备名作为宾语或者标明操作所属的模块 或者谓语 宾语 表语 此时设备名作为主语或者标明操作所属的模块 等形式 如 1 tic init 2 adc is busy 3 uart tx char 中断函数的命名直接使用 设备名 isr 的形式命名 如 1 timer2 isr 2 变量的命名 变量的命名也采用下划线分割小写字母的方式命名 命名应当准确 不引起歧义 且长度适中 如 1 intlength 2 uint32 test offset 单字符的名字也是常用的 如i j k 等 它们通常可用作函数内的局部变量 tmp 常用做临时变量名 局部静态变量 应加 s 词冠 表示 static 如 1 staticints lastw 全局变量 尤其是供外部访问的全局变量 应加 g 词冠 表示 global 如 1 void g capture hook void 3 常量及宏的命名 采用下划线分割大写字母的方式命名 一般应以设备名作为前缀 防止模块间命名 的重复 如 1 define TIMER0 MODE RELOAD2 2 define TIMER2 COUNT RETRIEVE val uint16 65535 val 当然 看作接口的宏可以按照函数的命名方法命名 例如 1 definetimer2 clear TF2 0 2 definetimer0 is expired TF0 4 常用缩写词 原词缩写 additionadd answerans arrayarr averageavg 资料分享之学习笔记 3 bufferbuf 或 buff capturecap 或 capt checkchk countcnt columncol controlctrl decodedec definedef deletedel destinationdst 或 dest displaydisp divisiondiv encodeenc environmentenv errorerr floatflt frequencyfreq headerhdr indexidx imageimg incrementinc initalizeinit iterationitr lengthlen memorymem middlemid makemk messagemsg multiplicationmul numbernum operandopnd optimizationopt operatoroptr packetpkt positonpos previouspre 或 prev payload typept pointerptr return coderc recordrcd receiverecv resultres returnret sourcesrc 资料分享之学习笔记 4 stackstk stringstr subtractionsub tabletab temporarytmp 或 temp totaltot time stampts valueval 5 结语 没有一种命名规则可以让所有的程序员赞同 而这多种命名规则也确实各有利弊 没有必要花太多的精力试图发明最好的命名规则 而是应当制定一种令大多数项目成员 满意的命名规则并切实执行 标识符命名的一致性自然会体现出代码的优雅 当然 如果你的程序使用了第三方的代码 而这些模块经验证确实是正确无误的 那么 也没有必要一味追求命名的一致性 而去修改这些已经定型的模块中的函数和变量名

展开阅读全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值