Skip to main content

变量常用命名一

Codelf:变量命名

变量大小转换工具

命名规则#

目前共有四种命名法则:驼峰命名法匈牙利命名法帕斯卡命名法下划线命名法,其中前三种是较为流行的命名法。

  1. 驼峰命令法

正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。

例如,下面是分别用骆驼式命名法和下划线法命名的同一个函数:

printEmployeePaychecks()print_employee_paychecks()

第一个函数名使用了驼峰命名法,函数名中的每一个逻辑断点都有一个大写字母来标记。第二个函数名使用了下划线法,函数名中的每一个逻辑断点都有一个下划线来标记。

驼峰命名法近年来越来越流行了,在许多新的函数库和Microsoft Windows这样的环境中,它使用得当相多。另一方面,下划线法是C出现后开始流行起来的,在许多旧的程序和UNIX这样的环境中,它的使用非常普遍。

  1. 匈牙利命名法

广泛应用于象Microsoft Windows这样的环境中。Windows 编程中用到的变量(还包括宏)的命名规则为匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯-西蒙尼(Charles Simonyi) 提出的。

匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域、类型等。这些符号可以多个同时使用,顺序是先m_(成员变量)、再指针、再简单数据类型、再其它。这样做的好处在于能增加程序的可读性,便于对程序的理解和维护。

例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。

匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。

  1. 帕斯卡(pascal)命名法

与驼峰命名法类似,二者的区别在于:驼峰命名法是首字母小写,而帕斯卡命名法是首字母大写,如:

DisplayInfo();string UserName;

二者都是采用了帕斯卡命名法。

  • 三种命名规则的小结: MyData就是一个帕斯卡命名的示例;myData是一个驼峰命名法,它第一个单词的第一个字母小写,后面的单词首字母大写,看起来像一个骆驼;iMyData是一个匈牙利命名法,它的小写的i说明了它的型态,后面的和帕斯卡命名相同,指示了该变量的用途。

命名的基本原则#

  1. 标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解——尽量采用采用英文单词或全部中文全拼表示,若出现英文单词和中文混合定义时,使用连字符_将英文与中文割开。较短的单词可通过去掉“元音”形成缩写;较长的单词可取单词的头几个字母形成缩写;一些单词有大家公认的缩写。例如:temp->tmpflag->flgstatistic->statincrement->incmessage->msg等缩写能够被大家基本认可。

  2. 命名中若使用特殊约定或缩写,则要有注释说明。应该在源文件的开始之处,对文件中所使用的缩写或约定,特别是特殊的缩写,进行必要的注释说明。

  3. 命名规范必须与所使用的系统风格保持一致,并在同一项目中统一。

  4. 对于变量命名,禁止取单个字符(如ijk... ),建议除了要有具体含义外,还能表明其变量类型、数据类型等,但ijk 作局部循环变量是允许的。变量,尤其是局部变量,如果用单个字符表示,很容易敲错(如i写成j),而编译时又检查不出来,有可能为了这个小小的错误而花费大量的查错时间。

警告

下面是常用的的命名,约定好后,再使用简写命名,否则不建议使用!!

运算#

英文简写含义
multiplicationmul
divisiondiv
additionadd加法/添加
subtractionsub
deletedel删除
increaseinc增加;增大;提高;增强
decreasedec减少,减小;减少量;减少过程
incrementinc增加、增量
decrementinc渐减;减缩;衰减率
averageavg平均
floatflt浮动、浮点
pointpt
numbernum数量、编号
maximummax最大值
middlemid中值
minimummin最小值
statisticstat统计
averageavg平均数
countcnt计数器 计算
Total总数 合计
calculatecalc计算
summationsum

数据类型#

英文简写含义
numbernum数字,数,数量
stringstr字符串
objectobj对象
datedat日期
functionfunc函数
characterchar字符
hexadecimalhex十六进制
arrayarr数组、集合

权限#

英文简写含义
rootroot管理员
administratoradm管理员
userusr用户
passwordpwd密码
databasedb数据库
listlst列表
serversrv服务
escapeesc退出
managermgr管理者
statusstat状态
dictionarydict字典
oracleora甲骨文数据库

js 变量#

英文简写含义
answerans响应、回答
bufferbuf或buff缓冲区
capturecap或capt捕获
checkchk检查
rowrow
columncol
controlctrl控制
decodedec解码、译码
definedef定义
deletedel删除
destinationdst或dest目的
displaydisp显示
encodeenc编码
environmentenv环境
errorerr错误
frequencyfreq频率
headerhdr开始、开头
imageimg影像、镜像
initalizeinit初始化
iterationitr循环、迭代
lengthlen长度
memorymem内存
makemk制造、形成
messagemsg消息
operandopnd操作数
optimizationopt最优
operatoroptr操作
packetpkt消息包
previouspre或prev以前的
pointerptr指针
recordrcd记录
receiverecv收到、接收
resultres结果
returnret返回
sourcesrc源头
stackstk
tabletab
temporarytmp或temp临时
totaltot全部的
time stampts时间戳
valueval
variablevar变量
indexidx / ndx索引、指示
argumentarg参数(形参)
parameterparam实参
SourseSrc
SetSet设置
SettingSetting设置
OverflowOvf溢出

控件命名#

英文简写含义
calendarcdr日历
messageDialogmsgdlg消息框
drawerdrw抽屉
buttonGroupbtngrp按钮分组
checkBoxchk复选框
containercntr容器
buttonbtn按钮
comboBoxcmb下拉框
lablelbl标签
progressBarprg进度条
pageIndicatorpgindicTab分页控件
radioButtonrdo单选框
rangeSliderrngsld滑块
scrollViewsvw视图滚动
scrollBarvsb(垂直)/hsb(水平)滚动条
slidersld滑动器
spinBoxspn旋转框
splitViewspltvw分割视图
stackViewstackvw堆栈视图
statusBarstatbr状态条
swipeViewswpvw滑动控件
switchsw开关
tabBartbbrtab栏
textFieldtxtfld文本输入框
toolBartlbr工具栏
toolTiptltp提示框
toolButtontlbtn工具按钮
treeViewtrvw树形视图
layoutlyt布局
mainMenummnu菜单栏
groupBoxgbx组合框
pictureBoxpic图片框
listViewlvw列表视图
windowwin(wnd)窗口
formfrm表单
textBoxtxt文本框
linkLabelllbl超链接标签框
dialogdlg对话框
scrollIndicatorscrlindic滚动指示器

其他命名#

英文简写含义
positonpos位置
addressaddr地址
destinationdest/dst目的地
applicationapp应用程序
asynchronizationasyn异步
bitmapbmp位图
bufferbuf缓冲区
colorclr颜色
commandcmd命令
devicedev设备
differentdiff不同的
directorydir目录
documentdoc文档
dynamicdyna动态的
executeexec执行
groupgrp
imageimg图像
informationinfo信息
initializeinit初始化
librarylib
messagemsg消息
packagepkg打包
positionpos位置
previouspre前一个
process/Procedureproc进程/过程
pointerptr指针
passwordpwd密码
publicpub公共的
referenceref引用
sourcesrc
synchronizationsync同步
SynchronizeSynch同步
systemsys系统
tabletbl表格
temporarytmp临时
texttxt文本
configurationconfig配置
controlctrl控制
originalorig原件
returnrtn返回
repeatrpt重复
signalsig信号
standardstd标准
triggertrig触发
backgroundbg背景
insertins插入
backbk返回
breakbrk间断
editedt编辑
flagflg标志
gridgrd网格
panoramapano全景
printprn打印
programprg程序
changechg改变
clickclk点击
comparecmp比较
coordinatescoord坐标
copycpy复制
currentcur当前的
displaydisp显示
driverdrv驱动
extendex/ext扩展
framefrm框架/帧
instanceins实例
linklnk链接
resourceres资源
selectsel选择
testtst测试
horizontalhorz水平
verticalvert垂直
VersionVer版本
UtilityUtil有用
UpUp
DownDown
UpdateUpdate更新\升级
WatchdogWdog看门狗
UnlockUnlock解锁
locklock锁定
TimeTime时间
TimerTmr计时器
ToggleTgl切换
TaskTask任务
ThresholdTh

其他常用单词#

序号描述缩写词中文
AAdditionAdd‍
AccumulatorAcc
AddressAddr
ActionAct
ActiveAct
AmplitudeAmp
Analog InputAI
Anolog I/OAIO
AllAll
AlarmAlm
AllocateAlloc
Analog OutputAO
ApparentApp
ArgumentArg
ArrangeArrng
ArrayArray
AssembleAsm
AttributeAttrib
BBarBar
BitBit
BlockBlk
BufferBuf
ButtonBtn
BypassBypass
CCalibrationCal
CalculateCalc
ConfigurationCfg
ChannelCh
ChangeChg
CheckChk
ClockClk
ClearClr
Clear ScreenCls
CommandCmd
CompareCmp
CompleteComp
CountCnt
CounterCtr
ColumnCol
CommunicationComm
ConnectCon
ConstructCons
ControlCtrl
ContextCtx
ConvertConv
CopyCp
CurrentCur
CursorCsr
Control WordCW
DDateDate
DayDay
DebounceDebounce
DecreaseDec
DecimalDec
DecodeDecode
DefineDef
DegreeDeg
DeleteDel
DestinationDst
DescriptorDesc
DeviceDev
Discrete InputDI
DigitDig
Discrete I/ODIO
Discrete Output(s)DO
DisableDis
DisplayDisp
DiscoveryDisc
DivisionDiv
Divisor/DivisionDiv
DelayDly
Day-of-weekDOW
DownDown
DummyDummy
DynamicDyn
EEdgeEdge
EffectiveEff
ElectricElec
EmptyEmpty
EnableEn
EngineEng
EnterEnter
EntriesEntries
EquivalentEquiv
Error(s)Err
EthernetEth
Engineering UnitsEU
Event(s)Event
ExtensionExt
ExitExit
ExceptionExc
ExpirationExp
ExponentExp
FFieldFld
FlagFlag
FlushFlush
Function(s)Fnct
FormatFormat
FractionFract
FreeFree
FrequencyFreq
FullFull
GGainGain
GetGet
GenerateGen
Group(s)Grp
HHandlerHandler
HarmonicHarm
HexadecimalHex
HighHi
HistoryHist
HitHit
High Priority TaskHPT
Hour(s)Hr
II.D.Id
IdleIdle
ImpulseImp
Input(s)In
InitializationInit
InitializeInit
InstructionInstr
InterruptInt
InvertInv
Interrupt Service RoutineISR
IndexIx
KKeyKey
KeyboardKey
LLengthLen
LimitLim
ListList
LowLo
LowerLe
LowestLo
LockLock
Low Priority TaskLTP
MMagnitudeMag
MantissaMan
ManualMan
ManufactureMfg
MaximumMax
MailboxMbox
MinimumMin
ModeMode
MonthMonth
MoveMov
MessageMsg
MeasureMeas
MaskMsk
MultiplicationMul
MultiplexMux
MakeMk
NNegativeNeg
Number ofNum
NestingNesting
NeutralNeut
NewNew
NextNext
OOffsetOffset
OldOld
Operation SystemOS
OptimizeOpt
OriginalOrig
OutputOut
OverflowOvf
PPackagePkg
ParameterParam
PassPass
PerformancePerf
PeriodPer
PhasePh
PortPort
PositionPos
PositivePos
PowerPwr
PreviousPrev
PriorityPrio
PrinterPrt
processProc
ProductProd
ProtocolProt
PointerPtr
PutPut
QQueueQ
QualityQlty
QuarterQuar
RRawRaw
ReactiveReact
RecallRcl
RectangleRect
ReadRd
ReadyRdy
ReferenceRef
RegisterReg
RequestReq
ResetReset
ReserveResv
ResumeResume
ResponseResp
ReturnRtn
ReverseRevs
RingRing
RowRow
RepeatRpt
Real-TimeRT
RunningRunning
ReceiveRx
SSampleSmp
ScaleScale
Scale FactorSF
ScalingScaling
ScanScan
ScheduleSched
SchedulerSched
ScreenScr
Second(s)Sec
Segment(s)Seg
SelectSel
SemaphoreSem
SequenceSeq
ServerSvr
SetSet
SettingSetting
SignalSig
SizeSize
Seven-segmentsSS
SourseSrc
StartStart
Statistic(s)Stat
StatusStat
StackStk
StandardStd
StopStop
StringStr
SubtractionSub
SuspendSuspend
SwitchSw
SynchronizeSynch
SystemSyst
TTaskTask
TableTbl
ThresholdTh
TickTick
TimeTime
TimerTmr
ToggleTgl
TotalTot
TriggerTrig
Time-stampTS
TimeoutTO
UUnlockUnlock
UpUp
UpdateUpdate
UtilityUtil
VValueVal
VectorVect
VersionVer
VariableVar
VisibleVis
VoltageVol
WWatchdogWdog
WriteWr
YYearYear