关于变量和函数命名的一种简单好用规则

最近在整理一份别人交接过来的代码,因为这份代码经手了若干个人,里面的变量和函数命名各式各样,还缺少很多注释,看得我头皮发麻,所以在梳理代码的过程中总结了一种简单好用的命名规则

点击查看代码
#ifndef GENERAL_DEF_H
#define GENERAL_DEF_H

/*  统一命名规则的好处
*   1、只需要输入开头几个字母,VSCODE就可以弹出相关的数据,不需要靠记忆再到具体的文件中查找
*   2、代码风格统一,自己容易看懂,别人也容易看懂
*/

/*  枚举定义命名以e_开头(enum缩写),后加枚举名字
 *  如果属于标志位或者状态位,此时可以自定义一个分类名字,例如以e_FLAG开头
 *  当以后有多种e_FLAG时,我们只需要输入e_FLAG,VSCODE就会自动弹出相关的枚举
 *  枚举成员命名,用e_后面的字符串作为开头,后面加具体的名字(单词之间加下划线,每个单词首字母大写)
 *  枚举变量命名,直接把枚举定义的名字改为每个单词首字母大写
 */
typedef enum
{
    Flag_Boot_Run_Stage_NULL = 0, // BOOT初始状态
    Flag_Boot_Run_Stage_Start,    // BOOT开始
    Flag_Boot_Run_Stage_Ing,      // BOOT运行中
    Flag_Boot_Run_Stage_Finish,   // BOOT结束
} e_FLAG_BOOT_RUN_STAGE;          // BOOT的运行状态

typedef enum
{
    Flag_App_Run_Stage_NULL = 0, // APP初始状态
    Flag_App_Run_Stage_Start,    // APP开始
    Flag_App_Run_Stage_ING,      // APP运行中
    Flag_App_Run_Stage_Finish,   // APP结束
} e_FLAG_APP_RUN_STAGE;          // APP的运行状态

e_FLAG_APP_RUN_STAGE e_Flag_App_Run_Stage = Flag_App_Run_Stage_NULL; //枚举变量命名

#define u8 unsigned char
#define u16 unsigned short int
#define u32 unsigned int
/*  结构体定义以s_开头(struct缩写),后加结构体名字
 *  其余使用方法和枚举相似,也可以按照自己需要加一个分类,如s_DATA表示与数据格式有关的结构体
 */
typedef struct
{
    e_FLAG_BOOT_RUN_STAGE Flag_Boot_Run_stage; // BOOT的运行状态
    u8 Boot_data;                              // BOOT的数据
} s_DATA_BOOT_VALUE;                           // BOOT中使用的数据

typedef struct
{
    e_FLAG_APP_RUN_STAGE Flag_App_Run_stage; // APP的运行状态
    u8 App_data;                             // APP的数据
} s_DATA_APP_VALUE;                          // APP中使用的数据


/*  其余变量命名格式,以下划线将各个单词分隔开,各个单词首字母大写
*   1、全局变量命名,以G_开头(Global缩写)
*   2、局部变量命名,以Tmp开头(Temporary缩写)
*   3、标志位或者状态位,以Flag_开头,如果可以用枚举定义则以e_Flag开头
*/

/*  函数命名格式
*   1、获取数据的函数,以Get_开头
*   2、设置数据的函数,以Set_开头
*   3、放在T1定时器中断中使用的函数,以IRQ_Handle_Timer1_开头
		3.1、也可以具体到这个定时器的定时时间,如1ms的T1定时器,IRQ_Handle_Timer1_1ms_
*   4、放在串口1中断中使用的函数,以IRQ_Handle_USART1_开头
*   5、放在main函数的while循环中使用的函数,以Main_While_Handle_开头
*   6、业务代码,以功能开头。如在屏幕上显示文字,以DisTxt_开头,在屏幕上显示图标,以DisIcon_开头
*/

#endif  //END-----GENERAL_DEF_H

在VSCODE中只需要输出开头几个字母,软件就会自动弹出开头相同的声明、定义,效果如下图所示
image

posted @ 2023-02-06 21:49  zhaoo_o  阅读(26)  评论(0编辑  收藏  举报