`
talentluke
  • 浏览: 600821 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

C语言常见命名规范

 
阅读更多

1 常见命名规则

比较著名的命名规则首推匈牙利命名法,
这种命名方法是由Microsoft程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。
其主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。
匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;
前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。
例如:lpszStr, 表示指向一个以'\0'结尾的字符串(sz)的长指针(lp)变量。

骆驼(Camel)命名法近年来越来越流行,
在许多新的函数库和Java这样的平台下使用得当相多。
骆驼命名法,正如它的名称所表示的那样,指的是混合使用大小写字母来构成标识符的名字。
其中第一个单词首字母小写,余下的单词首字母大写。
例如:printEmployeePaychecks(),函数名中每一个逻辑断点都有一个大写字母来标记。

帕斯卡(Pascal)命名法与骆驼命名法类似。
只不过骆驼命名法是第一个单词首字母小写,而帕斯卡命名法则是第一个单词首字母大写。
例如:DisplayInfo()和UserName都是采用了帕斯卡命名法。

在C#中,以帕斯卡命名法和骆驼命名法居多。
事实上,很多程序设计者在实际命名时会将骆驼命名法和帕斯卡结合使用,
例如变量名采用骆驼命名法,而函数采用帕斯卡命名法。

另一种流行的命名规则称为下划线命名法。
下划线法是随着C语言的出现流行起来的,在UNIX/LIUNX这样的环境,以及GNU代码中使用非常普遍。

本章所述的命名规则主要基于下划线命名法发展而来。


2 函数的命名

函数名使用下划线分割小写字母的方式命名:

设备名_操作名()

操作名一般采用:谓语(此时设备名作为宾语或者标明操作所属的模块)或者
谓语+宾语/表语(此时设备名作为主语或者标明操作所属的模块) 等形式,如:

tic_init()
adc_is_busy()
uart_tx_char()

中断函数的命名直接使用 设备名_isr() 的形式命名,如:
timer2_isr()


3 变量的命名

变量的命名也采用下划线分割小写字母的方式命名。
命名应当准确,不引起歧义,且长度适中。如:
int length;
uint32 test_offset;

单字符的名字也是常用的,如i, j, k等,它们通常可用作函数内的局部变量。

tmp常用做临时变量名。

局部静态变量,应加s_词冠(表示static),如:
static int s_lastw;

全局变量(尤其是供外部访问的全局变量),应加g_词冠(表示global),如:
void (* g_capture_hook)(void);


4 常量及宏的命名

采用下划线分割大写字母的方式命名,一般应以设备名作为前缀,
防止模块间命名的重复。如:

#define TIMER0_MODE_RELOAD 2
#define TIMER2_COUNT_RETRIEVE(val) ((uint16)(65536 - (val)))

当然,看作接口的宏可以按照函数的命名方法命名,例如:

#define timer2_clear() (TF2 = 0)
#define timer0_is_expired() (TF0)


5 常用缩写词

原词 缩写

addition add
answer ans
array arr
average avg
buffer buf或buff
capture cap或capt
check chk
count cnt
column col
control ctrl
decode dec
define def
delete del
destination dst或dest
display disp
division div
encode enc
environment env
error err
float flt
frequency freq
header hdr
index idx
image img
increment inc
initalize init
iteration itr
length len
memory mem
middle mid
make mk
message msg
multiplication mul
number num
operand opnd
optimization opt
operator optr
packet pkt
positon pos
previous pre或prev
payload type pt
pointer ptr
return code rc
record rcd
receive recv
result res
return ret
source src
stack stk
string str
subtraction sub
table tab
temporary tmp或temp
total tot
time stamp ts
value val



6 结语

没有一种命名规则可以让所有的程序员赞同。而这多种命名规则也确实各有利弊。

没有必要花太多的精力试图发明最好的命名规则,
而是应当制定一种令大多数项目成员满意的命名规则并切实执行。
标识符命名的一致性自然会体现出代码的优雅。

当然,如果你的程序使用了第三方的代码,而这些模块经验证确实是正确无误的。
那么也没有必要一味追求命名的一致性,而去修改这些已经定型的模块中的函数和变量名。

分享到:
评论

相关推荐

    华为C语言编程规范总则.pdf

    华为C语言编程规范是一套旨在指导华为工程师在进行C语言开发时应遵循的编码规则和最佳实践,其目的是为了提升代码质量、可读性、可维护性以及团队协作的效率。这套规范会涵盖代码格式、命名规则、注释习惯、函数设计...

    C语言常见错误分析=。=

    为了避免这类问题,应当遵循一致的命名规范,如使用有意义的变量名,并确保每个作用域内的变量名字唯一。 2. **代码结构与缩进**:代码的结构清晰性直接影响到程序的理解和调试。如示例所示,未正确使用花括号会...

    c语言编程规范pdf版

    ### C语言编程规范详解 #### 一、导言 本文档旨在介绍《高质量C++/C编程指南》的内容概述及核心知识点,该指南由林锐博士编写,版本为1.0,于2001年7月24日发布。这份指南详细地介绍了C/C++编程中的各种最佳实践,...

    AVR单片机应用技术 C语言代码编程命名规范.docx

    【AVR单片机应用技术】中的C语言代码编程命名规范是编程实践中极其重要的一个环节,它直接影响到代码的可读性和维护性。C语言以其简洁的语法深受程序员喜爱,但在编写代码时,遵循良好的命名规则能显著提高代码质量...

    单片机C语言基本编程规范详解

    首先是关于命名规范。在单片机C语言编程中,良好的命名规则能极大提升代码的可读性。一般要求命名清晰明了,避免使用无意义或含糊不清的标识符。例如,变量、函数等标识符命名应尽量使用完整单词或约定俗成的缩写,...

    c语言编写风格 规范与技巧

    ### C语言编写风格规范与技巧 #### 一、引言 C语言作为一种广泛使用的编程语言,在软件开发领域占据着极其重要的地位。随着程序规模的不断扩大,保持良好的编码风格变得尤为重要。良好的编码风格不仅可以提高程序...

    一个C语言的命名问题.pdf

    在C语言编程中,命名规范是至关重要的,因为它直接影响到代码的可读性、可维护性和正确性。本文主要讨论了一个特殊的命名问题,即全局函数和全局变量的名称相同,从而引发的软件故障。这个问题在软件开发过程中并不...

    C语言变量命名规则该PDF档详细描述了C语言下变量的命名规律

    匈牙利命名法是一种变量命名规范,最初由Charles Simonyi设计,并因其匈牙利血统而得名。这种方法的核心在于为每一个变量名称添加前缀,以此来表达变量的类型或用途。例如,在Windows编程环境中,整型变量通常以`n`...

    深圳华为公司C语言编程规范

    华为的规范可能包括对变量命名、注释编写、代码缩进、空格使用等方面的明确要求。例如,变量名应具有描述性,注释要清晰明了,帮助他人理解代码功能。代码格式统一可以提高团队协作效率,避免因个人风格差异导致的...

    C语言程序编写规范,简化版

    #### 五、命名规范 **5.1 变量命名规则:** - 变量命名应遵循一定的规则,便于理解其含义。 **5.2 类名与对象命名:** - 类名与对象命名应遵循面向对象的设计思路。 **5.3 常量命名:** - 常量命名应使用全...

    C语言变量名命名规则

    - 参数命名遵循变量命名规范。 - 传递大结构时使用指针或引用方式。 - 入口参数前加 `const` 标志,以区分入口和出口参数。 以上就是C语言变量名命名规则及其相关细节的详细介绍。通过遵循这些规则,可以大大...

    华为技术有限公司c语言编程规范

    华为技术有限公司的C语言编程规范是一份旨在提升编程质量、指导开发者编写高质量代码的详细指南。该规范的制定基于华为对代码清晰性、简洁性、可维护性、可靠性、可测试性、高效性以及可移植性等方面的追求。这份...

    C语言变量命名规则.pdf

    C语言编程规范中,变量命名规则是至关重要的,它直接影响代码的可读性和维护性。以下是对这些规则的详细说明: 1. **阶梯层次组织**:代码的组织应该清晰有序,每一层缩进保持四格,大括号对齐,以增加代码的可读性...

    c语言编程规范 C语言模块化

    1. **命名规范**: - 变量、函数等的命名应该直观明了,遵循一定的命名规则。例如,变量名采用小写字母和下划线组合的方式(如`int my_variable`),而函数名则通常首字母小写,其余单词首字母大写(如`int ...

    c语言编程规范(中文)

    ### C语言编程规范知识点概述 #### 一、文件结构与管理 - **版权与版本声明**:明确软件的版权信息及版本号,便于追踪修改记录和版权归属。 - **头文件结构**:介绍如何组织头文件,确保其清晰且易于维护。 - **...

    c语言编码规范(全)

    #### 六、命名规范 - **变量命名:** 变量名应具有描述性,采用有意义的名称,例如使用`bEnable`表示布尔型变量。 - **类型命名:** 类型命名应反映其用途,例如`DBS_DATABASE`用于表示数据库结构。 - **函数命名:...

Global site tag (gtag.js) - Google Analytics