[逼死强迫症 - C&C++设计风格选择.1] : 命名规范
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了[逼死强迫症 - C&C++设计风格选择.1] : 命名规范,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4479字,纯文字阅读大概需要7分钟。
内容图文
![[逼死强迫症 - C&C++设计风格选择.1] : 命名规范](/upload/InfoBanner/zyjiaocheng/1323/8b66b4dda7a14375ad792ad360f81951.jpg)
1.命名规范
1.1.常见命名法
1.2.文件命名
1 # C语言不纠结 2 file.h & file.c 3 # C++ Group.1(注意C是大写) 4file.h & file.C 5 # C++ Group.2 6file.hh & file.cc 7 # C++ Group.3 8file.hpp & file.cpp 9 # C++ Group.410file.hxx & file.cxx
1 # Teddy项目UserLog文件为例: 2 # Group.1 3 UserLog.c & TedUserLog.c 4 # Group.2 5 userlog.c & teduserlog.c 6 # Group.3 7 userlog.c & ted_userlog.c 8 # Group.4 9 user_log.c & ted_user_log.c 10 # Group.511 user-log.c & ted-user-log.c
1.3.类型命名
1 /* 2 ** 基本数据类型的重定义,小写比首字母大写更有利于延长Shift寿命, 3 ** 但也更容易产生命名冲突。 4 */ 5 typedef unsigned charbyte; 6 typedef unsigned char byte_t; 7 typedef unsigned char Byte; 8 typedef unsigned char Byte_t; 910/*11** 类与结构体常见的风格是采用PascalCase,不推荐使用camelCase 12** 这种怪异的风格。 13*/14class HashTable { ... 15class hash_table { ... 16struct FileInfo { ... 17struct file_info { ... 1819/* C语言常见到的风格还有结构体名称加‘_t‘后缀 */20struct fileinfo_t { ... 21struct FileInfo_t { ... 2223/* 枚举命名常见PascalCase风格 */24enum FileFlags { ... 25enum file_flags { ...
1.4.命名空间命名
1 /* 一般使用项目名称,风格看喜好。 */ 2 namespace my_project { ... 3 namespace MyProject { ...
tip.1:确保命名空间不会和常用的库冲突;
1.5.函数和变量命名
1 /* 2 ** 在函数和变量命名风格上PascalCase,camelCase, 3 ** snake_case三足鼎立,选择凭喜好。 4 */ 5 void FunctionName(void) { ... 6void functionName(void) { ... 7void function_name(void) { ... 8 9long VarName; 10long varName; 11long var_name; 1213/*14** tip.1:snake_case在名称比较长时可读性较好; 15*/16long variable_names_in_snake_case; 17long VariableNamesInPascalCase; 18long variableNamesInCamelCase; 1920/*21** tip.2:PascalCase和camelCase在函数中的区分度较好, 22** 在快速扫描代码逻辑的时候不易被其它符号所干扰。 23*/24long FabonacciFunction(long rabbitNums) 25{ 26if (rabbitNums < 2) { 27return rabbitNums; 28 } 29long resultOne = FabonacciFunction(rabbitNums - 1); 30long resultTwo = FabonacciFunction(rabbitNums - 2); 31return resultOne + resultTwo; 32} 3334long fabonacci_function(long rabbit_nums) 35{ 36if (rabbit_nums < 2) { 37return rabbit_nums; 38 } 39long result_one = fabonacci_function(rabbit_nums - 1); 40long result_two = fabonacci_function(rabbit_nums - 2); 41return result_one + result_two; 42 }
tip.3:如果类需要兼容标准库迭代器或是要支持range for,begin()和end()函数会破坏PascalCase风格的一致性;
1.6.类成员变量和全局变量命名
1 /* 2 ** 类成员变量和全局变量的命名风格和局部变量的命名风格 3 ** 并没有更多的区别。唯一的问题是,是否要加前缀或后缀 4 ** 以方便和局部变量区分开来。 5 */ 6 class UserInfo { 7 ... 8 private : 9 std::string user_name_; /* Google style */10 std::string m_userName; /* Hungarian notation */11/* 不推荐前缀‘_‘的风格,可能会和标准库命名冲突 */12}; 1314/* 全局变量要少用,推荐加前缀用于区分 */15extern"C"long g_commonCount;
tip.1:在有IDE提示时,前缀"m_"的类成员变量能够很快被找到,如果不喜欢这种风格,"this->"同样也很便利;
1.7.常量和枚举值命名
1 /* 2 ** 常量和枚举值的命名风格建议和局部变量的命名风格区分开, 3 ** 常见的有全字母大写加‘_‘的风格,PascalCase风格,以及 4 ** Google加‘k‘前缀的风格。 5 */ 6 static const int DAYS_IN_WEEK = 7; 7staticconstint kDaysInWeek = 7; 8 9enum FileOpenMode { 10 ReadOnly, WriteOnly, ReadWrite 11}; 1213enum FileOpenMode { 14 READ_ONLY, WRITE_ONLY, READ_WRITE 15 };
tip.1:如果可以使用c++11特性,推荐enum class,否则可以在有歧义的枚举值中重复枚举类型的名字;
1.8.宏命名
1 /* 宏命名推荐使用全字母大写加‘_‘分隔的风格 */ 2 #define OS_UNIX 3#define OS_LINUX 4#define OS_WINNT 5 6/* 除非你想用条件编译将某些功能变为可选项 */ 7#ifdef USE_TCMALLOC 8#define my_malloc tcmalloc 9#else10#define my_malloc malloc 11#endif
tip.1:能用常量替代宏的地方尽量使用常量吧;
原文:http://www.cnblogs.com/far-taurus/p/5255011.html
内容总结
以上是互联网集市为您收集整理的[逼死强迫症 - C&C++设计风格选择.1] : 命名规范全部内容,希望文章能够帮你解决[逼死强迫症 - C&C++设计风格选择.1] : 命名规范所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。