单片机和C++命名规范

2019-04-15 19:14发布

通用命名规则:     函数名,变量名以及文件名应该是自描述的,应避免使用缩写。类型和变量应使用名词,而函数应包含动词。     int num_errors;                  // Good.     int num_completed_connections;   // Good.       int n;                           // Bad - meaningless.     int nerr;                        // Bad - ambiguous abbreviation.     int n_comp_conns;                // Bad - ambiguous abbreviation.       避免使用缩写,除非它们在你的项目外非常的通用。       int error_count;  // Good.     int error_cnt;    // Bad.   文件名:     文件名应该包含小写字母以及下划线(_).     以下是可以接受的文件名:     my_useful_class.cc     myusefulclass.cc     myusefulclass_test.cc // _unittest and _regtest are deprecated.          内联函数(Inline function)必须包括在.h文件中。     如果你的内联函数很小,你应该直接写到.h文件中。     如果你的内联函数包括一定量的代码,则它们应该写到以-inl.h结尾的第三方文件中。     如果你的类有很多的内联函数,则你的类应该有三个文件:     url_table.h      // The class declaration.     url_table.cc     // The class definition.     url_table-inl.h  // Inline functions that include lots of code.      类型名:     类型名(包括:类,结构体,类型定义,枚举)以大写字母开头且每个新单词都以大写字母开头,不包括下划线。     // classes and structs     class UrlTable { ...     class UrlTableTester { ...     struct UrlTableProperties { ...       // typedefs     typedef hash_map PropertiesMap;       // enums     enum UrlTableErrors { ...          变量名:     变量名只包含小写字母并以下划线分隔每个单词。类成员变量应该以下划线结尾。     通用变量名:     string table_name;  // OK - uses underscore.       类成员变量:     string table_name_;  // OK - underscore at end.     string tablename_;   // OK.       结构体成员变量:为了与类成员变量区分,结构体成员变量不以下划线结尾。     struct UrlTableProperties {       string name;       int num_entries;     }       全局变量:与通用变量命名相同,以g_作为前缀。   常量名:     使用k后面每个单词的首字母大写     const int kDaysInAWeek = 7;   函数名:     通用的函数名使用每个单词首字母大写的方式,对类成员变量存取的函数与类成员变量名匹配:MyExcitingFunction(), MyExcitingMethod(), my_exciting_member_variable(),     set_my_exciting_member_variable().     通用函数名:     AddTableEntry()     DeleteUrl()     OpenFileOrDie()       存取变量函数名:     class MyClass {      public:       ...       int num_entries() const { return num_entries_; }       void set_num_entries(int num_entries) { num_entries_ = num_entries; }        private:       int num_entries_;     };   命名空间:     命名空间应都是小写字母且基于项目名称以及存放路径。   枚举命名:     枚举应于常量或宏定义使用相同的命名方式,即kEnumNameENUM_NAME     enum UrlTableErrors {       kOK = 0,       kErrorOutOfMemory,       kErrorMalformedInput,     };     enum AlternateUrlTableErrors {       OK = 0,       OUT_OF_MEMORY = 1,       MALFORMED_INPUT = 2,     };   宏命名:     通常情况下宏不应被使用。如果真正需要时,要以全部大写以及下划线进行命名。     #define ROUND(x) ...     #define PI_ROUNDED 3.0