--- title: 命名规范 date: 9997-12-28 tags: [方法论,计算机] --- print_employee_paychecks 下划线命名法 printEmployeePaychecks 驼峰命名法 PrintEmployeePaychecks 帕斯卡命名法 iPrintEmployeePaychecks 匈牙利命名法 ## 一般规定 动宾格式(变量类型+变量信息)。【动词+名词】或【形容词+名词】 意思明确。尽量简短。 不要出现名字完全相同的局部变量和全局变量。 禁止取单个字符作为变量名。尽量避免名字中出现数字编号,除非逻辑上的确需要编号,因为数字并传达不了有用信息。 在源文件的开始之处,对文件中所使用的缩写或约定,特别是特殊的缩写,进行必要的注释说明。 除了编译开关/ 头文件等特殊应用,应避免使用_EXAMPLE_TEST_ 之类以下划线开始和结尾的定义。 命名风格保持一致。描述性以及唯一性这两大特征来命名,保证资源不冲突,便于记忆 文件中 变量、函数都按照相同的原则命名 子模块或派生类要遵循其基类或整体模块的 常用命名法 逻辑断点 变量名是大小写英文、数字、“$”和“_”的组合,且不能用数字开头。 变量名也不能是语言的关键字,如if、while等。 ## 有效参考 一些单词有大家公认的缩写。temp->tmp、flag->flg、statistic->stat、increment->inc、message->msg cut、paste create、destroy|add、remove|add、delete|insert、delete begin、end|start、stop|open、close|lock、unlock|show、hide| get、release|put、get send、receive first、last、next、previous min、max| old、new| increment、decrement|up、down source、target|source、destination int min_sum; int max_sum; int add_user( BYTE *user_name ); int delete_user( BYTE *user_name ); nMinValue nMaxValue GetName() SetName() ## 语言规定 C++命名要采用匈牙利命名法 很多程序设计者在实际命名时会将驼峰命名法和帕斯卡结合使用,例如变量名采用驼峰命名法,而函数采用帕斯卡命名法。 在C#中,以帕斯卡命名法和骆驼命名法居多。 下划线:C语言、UNIX/LIUNX、GNU代码中使用非常普遍。 规划好接口部分标识符(变量、结构、函数及常量)的命名,防止编译、链接时产生冲突。可规定接口部分的变量与常量之前加上“模块”标识等。 较短的单词可通过去掉元音形成缩写 较长的单词可取单词的头几个字母形成缩写 ## 匈牙利法 前缀+单词。前缀反应变量的作用域(属性),类型。单词指明变量的用途(对象描述)。例如:bEnable, nLength, hWnd。 ## 实例 先m_(成员变 量),再指针,再简单数据类型,再其他。m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量 a。Array。数组 b。BOOL。布尔。bFlg by。BYTE。无符号字符 c。char。字符 C。类。CDocument, CPrintInfo cb。Count of bytes。字节数 cr。Color reference value。颜色值 cx,cy。Count of x,y(short)。长度 dw。DWORD。双字(无符号长整形) f。Flags。标志 fn。Function。函数 g_。Global。全局的,全局变量g_Servers h。HANDLE。句柄 i。Integer(int)。整数 l。Long(long)。长整数 lp。Long point。长指针 m_。Data member of a class。类的数据成员,成员变量。m_pDoc, m_nCustomers n。Short(short)。短整型 np。Near point。短指针 p。Point。指针 s。String。字符串 sz。Zero terminated string。以0结尾的字符串 tm。Text metric。文本规则 u。Unsigned int。无符号整数 ul。Unsigned long(ULONG)。无符号长整数 w。WORD。无符号短整数 x,y。coordinates(short)。坐标 v。Void。空 数据类型/对象类型 / 变量前缀 / 备注 byte bye char chr float flt boolean bln 做布尔变量时,使用bln Integer/int int String str Single sng short sht Long/long lng Double/double dbl Currency cur Variant 做布尔变量用时,用bln, 做字符串数组用时,用astr, 做为对象使用时,用obj, 不确定时,用vnt。 a,数组。astr为字符串数组。 ## java 常量。全部大写,下划线逻辑断点。MAX_VALUE 接口。加前缀“I”。IRunnable、ISingleton。 类。大驼峰。TestPage、XMLExample、Circle。代表对象,尽量用名词。 参数、变量、属性、方法。小驼峰。参数名称为一个单词,且表意明确。sendMessge 包名。全部小写。域名反写(作为程序员个体的唯一前缀)+blabla。如net.frontfree.javagroup 循环计数器。i、j和k 例外(Exception)。e,ex 布尔变量。boolHaveRecord:是否有记录。 数组的定义。int[] packets 列表。dayList 二维以上数组。lmtTypeArr 长度。packetsSize ## 数据库 不超过30字符。 表名。T_Sys_User、T_User。T-开头。首字母大写。单数。 字段。fUserName。f开头,除自增主键id外。 ## 参考 https://www.cnblogs.com/feige1314/p/7467002.html C语言编程规范—命名规则 https://blog.csdn.net/u014296677/article/details/51504321 几种常见的程序命名规则 https://blog.csdn.net/xiaoxunx/article/details/52691527 程序开发的命名规范