今天讲讲C/C++中的命名规则
命名规则或者说命名限制可以应用于函数命名、变量命名、常量命名、结构体命名、自定义类型命名以及C++中类命名、对象命名、模板类或对象命名等等
第一条:名称的第一个字符只能是字母或者下划线。
int _,_a,A1,_9;//合法 int 1_a,1_,$S;//非法
注意:只有一个下划线的名称,在C/C++中是一个合法的名称!
第二条:名称中可以包含数字
第三条:名称中不能包含除了下划线、字母和数字之外的其他符号
第四条:名称是大小写敏感的
也就是说name和NAME是两个不同的名称(在数据库语言中,两者往往是等价的)
第五条:名称不能和关键字同名
比如你不能命名一个叫return的变量。(关键字的概念下节将详细说明)
隐含限制:
1 名称最好不能和系统函数、系统变量、库函数名、库提供的全局变量重名。
比如最好不要命名一个printf的函数,否则很容易在链接阶段(代码编译过程后面会涉及)出现冲突
2 main只能用于入口函数(或者说是起始函数)命名,不得用于其他函数、变量
当你违背该限制极可能导致编译器在链接阶段出现问题
另外现在编译器基本不会限制名称的长度(至少支持256字节长度的名字),但是命名长度最好不要超过32个。
因为在一些涉及单片机的开发中,老式的编译器对于超过31个长度的名字,会忽略之后的部分。
另外,在后面提到的库中,导出的名称如果过长,可能会导致链接问题
命名的建议:
1 合理的使用下划线分隔名称的各个单词
2 不建议以下划线开头命名函数和变量,因为这可能与某些系统保留名称或者变量名冲突
3 合理使用大小写来分隔名称的各个部分
4 宏名称最好一律用大写字母来命名(宏的含义后面会详解)
目前比较常用的命名规范:
匈牙利命名法 通过增加前缀来帮助人们对变量的理解
骆驼(Camel)命名法 如果一个名称由多个单词构成,则第一个单词全部小写,其后每个单词的首字母大写,其他字母小写
如果第一个单词的首字符你也大写了,嗯哼,没有关系,这是 帕斯卡(Pascal)命名法
下划线命名法 使用下划线来分隔名称中的各个部分
好了,今天就到这里了
各位可以自己在代码中尝试各种命名