个人命名规则
——————————BY LJB——————————
源文件 abc.c
头文件 abc.h
头文件防重 #ifndef _ABC_H_
#define _ABC_H_
//内容
#endif /* _ABC_H_ */
宏定义 ABC _DE
函数名 Abc_De
变量名 abc
结构体类型 Abc_StructTypedef
结构体变量名 AbcStruct
结构体成员变量 abc
联合体类型 Abc_UnionTypedef
联合体变量名 AbcUnion
联合体成员变量 abc
枚举类型 Abc_EnumTypedef
枚举变量名 AbcEnum
枚举成员变量 ABC
指针 type *p
指针空 NULL
数值零 0
对其方式 Tab(快捷)→Space(兼容性好)
void UART_Configure()
void CAN_Configure()
——————————BY LJB——————————
上面的C语言命名规则体现了一种清晰、一致且易于理解的命名约定,这在编程实践中是非常重要的。下面是对这些命名规则的评价:
源文件与头文件命名:
abc.c
和 abc.h
的命名简洁明了,遵循了常见的源文件与头文件命名习惯,即使用与模块或功能相关的名称,并以 .c
和 .h
作为后缀。
头文件防重:
使用 #ifndef
、#define
和 #endif
宏定义来防止头文件重复包含是标准的做法,有助于避免编译错误和不必要的重复定义。
宏定义:
ABC_DE
的命名使用了大写字母和下划线,这是宏定义的常见命名方式,有助于区分宏定义和其他类型的标识符。
函数命名:
Abc_De
的命名采用了驼峰命名法,并且首字母小写,这种命名方式有助于提高代码的可读性,使得函数名能够清晰地表达其功能。
变量命名:
abc
的命名使用了小写字母,这是变量命名的常见做法,有助于区分变量和其他类型的标识符。
结构体、联合体、枚举命名:
结构体类型 Abc_StructTypedef
、联合体类型 Abc_UnionTypedef
和枚举类型 Abc_EnumTypedef
的命名都遵循了驼峰命名法,并且添加了 _Typedef
后缀以表示这是一个类型定义,这种做法有助于提高代码的可读性和一致性。
变量名后缀:
结构体变量名 AbcStruct
、联合体变量名 AbcUnion
和枚举变量名 AbcEnum
都使用了驼峰命名法,并且后缀清晰地表明了变量的类型,这有助于在代码中快速识别变量的类型。
指针命名:
指针 type *p
的命名遵循了常见的指针命名习惯,即使用小写字母作为变量名,并通过 *
符号表示指针类型。
空指针和数值零:
使用 NULL
表示空指针,使用 0
表示数值零,这是C语言中的标准做法,有助于保持代码的一致性和可读性。
对齐方式:
提供了Tab
和Space
两种对齐方式的选择,并指出了Space
的兼容性好。这体现了对代码格式化和可读性的重视,虽然具体选择哪种方式可能取决于个人或团队的偏好。
总的来说,这些命名规则体现了良好的编程实践,有助于提高代码的可读性、可维护性和一致性。当然,这些规则并不是绝对的,实际编程中可能还需要根据具体需求和团队规范进行适当调整。