C语言如何命名标识符
C语言如何命名标识符
今天小编给大家分享一下C语言如何命名标识符的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
1、标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解
说明:尽可能给出描述性名称,不要节约空间,让别人很快理解你的代码更重要。
示例:好的命名:
interror_number;
intnumber_of_completed_connection;
不好的命名:使用模糊的缩写或随意的字符:
intn;
intnerr;
intn_comp_conns;
2、除了常见的通用缩写以外,不使用单词缩写,不得使用汉语拼音
说明:较短的单词可通过去掉“元音”形成缩写,较长的单词可取单词的头几个字母形成缩写,一些单词有大家公认的缩写,常用单词的缩写必须统一。协议中的单词的缩写与协议保持一致。对于某个系统使用的专用缩写应该在注视或者某处做统一说明。
示例:一些常见可以缩写的例子:
argument可缩写为arg
buffer可缩写为buff
clock可缩写为clk
command可缩写为cmd
compare可缩写为cmp
configuration可缩写为cfg
device可缩写为dev
error可缩写为err
hexadecimal可缩写为hex
increment可缩写为inc、
initialize可缩写为init
maximum可缩写为max
message可缩写为msg
minimum可缩写为min
parameter可缩写为para
previous可缩写为prev
register可缩写为reg
semaphore可缩写为sem
statistic可缩写为stat
synchronize可缩写为sync
temp可缩写为tmp
3、产品/项目组内部应保持统一的命名风格
说明:Unix like和windows like风格均有其拥趸,产品应根据自己的部署平台,选择其中一种,并在产品内部保持一致。
例外:即使产品之前使用匈牙利命名法,新代码也不应当使用。
4、用正确的反义词组命名具有互斥意义的变量或相反动作的函数等
示例:
add/removebegin/endcreate/destroy
insert/deletefirst/lastget/release
increment/decrementput/getadd/delete
lock/unlockopen/closemin/max
old/newstart/stopnext/previous
source/targetshow/hidesend/receive
source/destinationcopy/pasteup/down
5、尽量避免名字中出现数字编号,除非逻辑上的确需要编号
示例:如下命名,使人产生疑惑。
#define EXAMPLE_0_TEST_
#define EXAMPLE_1_TEST_
应改为有意义的单词命名
#define EXAMPLE_UNIT_TEST_
#define EXAMPLE_ASSERT_TEST_
6、标识符前不应添加模块、项目、产品、部门的名称作为前缀
说明:很多已有代码中已经习惯在文件名中增加模块名,这种写法类似匈牙利命名法,导致文件名不可读,并且带来带来如下问题:
1第一眼看到的是模块名,而不是真正的文件功能,阻碍阅读;
2文件名太长;
3文件名和模块绑定,不利于维护和移植。若foo.c进行重构后,从a模块挪到b模块,若foo.c中有模块名,则需要将文件名从a_module_foo.c改为b_module_foo.c
7、命名规范
7.1文件命名统一采用小写字符
说明:因为不同系统对文件名大小写处理会不同(如MS的DOS、Windows系统不区分大小写,但是Linux系统则区分),所以代码文件命名建议统一采用全小写字母命名。
7.2全局变量应增加“g_”前缀
7.3静态变量应增加“s_”前缀
说明:增加g_前缀或者s_前缀,原因如下:
首先,全局变量十分危险,通过前缀使得全局变量更加醒目,促使开发人员对这些变量的使用更加小心。
其次,从根本上说,应当尽量不使用全局变量,增加g_和s_前缀,会使得全局变量的名字显得很丑陋,从而促使开发人员尽量少使用全局变量。
7.4禁止使用单字节命名变量,但允许定义i、j、k作为局部循环变量
7.5不建议使用匈牙利命名法。
7.6函数命名应以函数要执行的动作命名,一般采用动词或者动词+名词的结构。
7.7对于数值或者字符串等等常量的定义,建议采用全大写字母,单词之间加下划线‘_’的方式命名(枚举同样建议使用此方式定义)。
示例:
#define PI_ROUNDED 3.14
7.8除了头文件或编译开关等特殊标识定义,宏定义不能使用下划线‘_’开头和结尾。
说明:一般来说,’_’开头、结尾的宏都是一些内部的定义,ISO/IEC 9899(俗称C99)中有如下的描述(6.10.8 Predefined macro names):
以上就是“C语言如何命名标识符”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注恰卡编程网行业资讯频道。