【代码风格之标识符命名篇】让你的代码更加规范,简洁易懂!
目录
- 一、命名规则
- 1. 标识符
- 2. 标识符命名规则
- 2.1 常见的命名法则
- 2.2 变量、常量、函数的命名(Windows 应用程序下)
- 2.2.1 变量命名
- 2.2.2 常量
- 2.2.3 函数名和类名
- 2.2.4 类的数据成员
- 3. 特别关注
- 4. 常见缩写词
一、命名规则
1. 标识符
标识符是指用来识别某个实体的一个符号,在不同的应用环境下有不同的含义。
在
计算机编程语言
中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。
标识符通常由字母
和数字
以及其它字符
构成。
2. 标识符命名规则
2.1 常见的命名法则
(1)匈牙利命名法
(一般不用)
主要思想:在变量和函数名中
加入前缀
以增进人们对程序的理解。
以一个或者多个小写字母开头作为前缀;前缀之后紧跟的是首字母大写的一个单词或多个单词组合。
“匈牙利”法最大的缺点是烦琐,例如:
int i, j, k;
float x, y, z;
倘若采用“匈牙利”命名规则,则应当写成
int iI, iJ, ik; // 前缀 i 表示 int 类型
float fX, fY, fZ; // 前缀 f 表示 float 类型
如此烦琐的程序会让绝大多数程序员无法忍受。
(2)骆驼(Camel)命名法
主要思想:混合使用大小写字母来构成标识符的名字。
其中第一个单词首字母小写
,余下的单词首字母大写。
例如:函数名 printEmployeePaychecks()
(3)帕斯卡(Pascal)命名法
帕斯卡命名法与骆驼命名法类似。
唯一不同的时帕斯卡命名法是第一个单词首字母大写
。
例如:DisplayInfo() 和 UserName 都是采用了帕斯卡命名法。
在
C++
中,以帕斯卡命名法和骆驼命名法
居多。
事实上,很多程序设计者在实际命名时会将骆驼命名法和帕斯卡结合使用,
例如变量名采用骆驼命名法
,而函数采用帕斯卡命名法
。
(4)下划线命名法
下划线法是随着
C 语言
的出现流行起来的,在UNIX/LIUNX这样的环境,以及GNU代码中使用非常普遍。
例如:my_name
2.2 变量、常量、函数的命名(Windows 应用程序下)
2.2.1 变量命名
(1)局部变量
变量和参数用小写字母开头
的单词组合而成。
一般使用“名词”或者“形容词+名词”
单字符的名字也是常用的,如i, j, k等
int i = 0;
int j = 0;
float value = 0;
float oldValue = 0; //骆驼命名法
(2)全局变量
(尤其是供外部访问的全局变量),应加g_词冠
(表示global)
int g_howManyPeople; // 全局变量
int g_howMuchMoney; // 全局变量
int g_capture_hook;// 全局变量
(3)静态变量
,应加s_词冠
(表示static)
例如:static int s_initValue;
2.2.2 常量
常量全用大写
的字母,用下划线分割单词。
const int MAX = 100;
const int MAX_LENGTH = 100;
2.2.3 函数名和类名
(1)类名和函数名用大写字母开头
的单词组合而成。
一般为“动词”或者“动词+名词”(动宾词组)。
class Node; // 类名
class LeafNode; // 类名
void Draw(void); // 函数名
void SetValue(int value); // 函数名(帕斯卡命名法)
(2)函数也可采用下划线命名法命名。
get_max();
2.2.4 类的数据成员
类的数据成员加前缀 m_
(表示 member),这样可以避免数据成员与成员函数的参数同名。
void Object::SetValue(int width, int height)
{
m_width = width;
m_height = height;
}
3. 特别关注
(1)标识符应当直观且可以拼读,可望文知意,不必进行“解码”。
标识符最好采用英文单词或其组合,便于记忆和阅读。切忌使用汉语拼音来命名。
程序中的英文单词一般不会太复杂,用词应当准确。例如不要把 CurrentValue 写成NowValue。
(2)几十年前老 ANSI C 规定名字不准超过 6 个字符,现今的 C++/C不再有此限制
。一般来说,长名字能更好地表达含义,所以函数名、变量名、类名长达十几个字符不足为怪。
那么名字是否越长约好?不见得!
例如:变量名 maxval 就比 maxValueUntilOverflow好用。
(3)程序中不要出现仅靠大小写区分的相似的标识符。
int x, X; // 变量 x 与 X 容易混淆
void foo(int x); // 函数 foo 与 FOO 容易混淆
void FOO(float x);
(4)用正确的反义词组命名
具有互斥意义的变量或相反动作的函数等。
int minValue;
int maxValue;
int SetValue(…);
int GetValue(…);
(5)命名规则尽量与所采用的操作系统或开发工具的风格保持一致
。
例如 :Windows 应用程序
的标识符通常采用“大小写”混排
的方式。
例如 :AddChild。
Unix 应用程序
的标识符通常采用“小写加下划线”
的方式。
如 add_child。
别把这两类风格混在一起用!
4. 常见缩写词
原词 | 缩写 | |
---|---|---|
addition | add | 加 |
subtraction | sub | 减 |
multiplication | mul | 乘法 |
division | div | 除法 |
answer | ans | 响应、回答 |
array | arr | 数组、集合 |
average | avg | 平均 |
capture | cap或capt | 捕获 |
check | chk | 检查 |
count | cnt | 计数器 |
column | col | 列 |
control | ctrl | 控制 |
decode | dec | 解码、译码 |
define | def | 定义 |
delete | del | 删除 |
destination | dst或dest | 目的 |
display | disp | 显示 |
encode | enc | 编码 |
environment | env | 环境 |
float | flt | 浮动、浮点 |
frequency | freq | 频率 |
header | hdr | 开始、开头 |
index | idx | 索引、指示 |
image | img | 影像、镜像 |
increment | inc | 增加、增量 |
initialize | init | 初始化 |
iteration | itr | 循环、迭代 |
length | len | 长度 |
memory | mem | 内存 |
middle | mid | 中值 |
make | mk | 制造、形成 |
message | msg | 消息 |
number | num | 数量、编号 |
operand | opnd | 操作数 |
optimization | opt | 最优 |
operator | optr | 操作 |
pointer | ptr | 指针 |
receive | recv | 收到、接收 |
return | ret | 返回 |
source | src | 源头 |
stack | stk | 栈 |
string | str | 字符串 |
table | tab | 表 |
temporary | tmp或temp | 临时 |
time stamp | ts | 时间戳 |
value | val | 值 |
【代码风格之标识符命名篇】让你的代码更加规范,简洁易懂!相关推荐
- 代码风格统一: 使用husky, prettier, eslint在代码提交时自动格式化,并检查代码。...
引言 这个需求主要是组内成员用的编辑器不统一,代码风格也各异,所以在修改代码时,如果格式化了代码,在code review阶段很难分辨修改了的代码.当然,代码风格统一还有其他好处,这里就不不多废话了. ...
- python代码风格程序越复杂越高级_Python中代码风格的改变和相应的性能优化
使用现代风格改善你的代码 一旦你开始使用 Python 3,你就有机会接触新的特性来改善你的代码.这篇文章中提到的很多东西实际上在 Python 3 之前就已经被支持了.但我还是要提一下它们,因为知道 ...
- FPGA之道(1)HDL代码风格
文章目录 前言 代码风格 具体的代码风格 我的总结 前言 这个2020年是多灾多难的一年,作为被困在家无所事事的普通老百姓我来说,憋得实在难受,想想在学校的过去时间是如此之珍贵,此刻如此虚度,甚是愧疚 ...
- matlab 代码风格,10 Matlab 函数与代码风格
函数 函数,本质上是一种可复用的代码.现实生活中,有大量的工作都是重复的,变化的只是其中一小部分. 举个例子,假如要你计算 " 1+2+3+4+5+6+7+8+9+10 ",最简单 ...
- Visual Studio Code 使用 ESLint 增强代码风格检查 - gyzhao - 博客园
前言 在团队协作开发中,为了统一代码风格,避免一些低级错误,应该设有团队成员统一遵守的编码规范.很多语言都提供了Lint工具来实现这样的功能,JavaScript也有类似的工具:ESLint.除了可以 ...
- python代码风格
pep8:Python代码风格检查工具 Python官网定义的代码风格 PEP 0008 – Style Guide for Python Code. pep8是检测编码风格是否符合 PEP 0008 ...
- 1.6 Scala代码风格
本文来自艾叔编著的<零基础快速入门Scala>免费电子书,添加文末艾叔微信,获取完整版的PDF电子书 1.6 Scala代码风格 每种语言都有自己的代码风格或规范,Scala也不例外,规 ...
- 前端架构师神技,三招统一团队代码风格
本文从代码规范,代码检查,代码格式化,以及编辑器自动化实现的方向,介绍代码规范统一在我们团队的实践应用. 大纲预览 本文介绍的内容包括以下方面: 认识代码规范 制定和统一规范 神技一:ESLint 神 ...
- 前端通过eslint+prettier+husky统一代码风格
背景 多人协作项目,会遇到每个人都有自己的代码风格.所以需要通过工具来统一代码风格. husky是什么? 当您提交或推送时,您可以使用 husky 来检查您的提交消息.运行测试.检查代码等Husky ...
最新文章
- String创建方式及其区别(快速了解)
- LeetCode实战:不同路径
- CentOS7.4下建立DNS主从服务器(二)
- 微软发布Azure Application Insights for Node.js 1.0版本
- ucosii事件控制块------消息邮箱与消息队列
- 解决问题 inner element must either be a resource reference or empty.
- html中和over怎么显示div,js 解决隐藏与显示div的相关问题
- 顺序表循环队列:创建初始化、入队、出队、获取队列头数据、计算队列有效数据长度...
- Python中使用PIL快速实现灰度图
- 根据IP地址查询其所属城市
- 使用Adobe Audition生成基本音频
- wpf 图片绝对路径引用_Python Pillow 图片处理
- 深度学习 --- 卷积神经网络CNN(LeNet-5网络学习算法详解)
- 《BI那点儿事》ETL中的关键技术
- easyui首页模板
- 层间距离对ct图像的影响_CT图像影响因素
- 怎样找回win7密钥
- Mysql个人学习总结
- [毕业设计] 基于单片机的智能快递柜设计与实现 - stm32 物联网
- 关于Python将plt文件坐标转换为TXT文本
热门文章
- Eclipse TFS使用
- 一文带你秒懂5G黑科技
- 非锐化掩蔽和高提升滤波
- 华为手机升级回退_华为鸿蒙还原EMUI系统-华为鸿蒙2.0回退到EMUI11官方还原工具下载V11.0.0.5601 官方版-西西软件下载...
- 【Http协议】Https简介
- java applet 输出多行_java – 在Applet中列出输入和输出音频设备
- adnroid studio debug模式提示 Method breakpoints may dramatically slow down debugging
- 财务软件中的借贷关系
- 从列表、字符串、元组或集合中随机抽取指定个元素 Python中random模块的sample()函数
- vue使用js-table2excel将数据导出Excel表格,含文字、图片类型, 设置表格样式/添加合并单元格