项目开发—变量规范

Posted 城子特讯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目开发—变量规范相关的知识,希望对你有一定的参考价值。

常量规范样例
常量名用大写,当多个单词组合需要加"_"下划线#define DRV_INDEX    /* 驱动的索引 */
所有的unsigned类型常量需要加后缀UL#define BUF_NUM_MAX      /* 最大缓存数 */
避免使用数字,应该使用有意义的枚举或者宏代替
常量数据要加const,若仅本文件使用可加static修饰const uint8_t g_Data[] =0.1;
变量规范样例
变量命名建议使用小驼峰,必要时加下划线errorCnt、read_Register_Addr
尽量避免使用全局变量,不滥用全局变量
仅在一个函数内使用的全局变量,在函数内定义使用static
+变量
static uint16_t s_Distance =0;
全局变量仅在一个文件中使用,也要加static修饰
外部变量应该声明在唯一的文件中
统一使用工程中一套基本的数据类型uint8_t、uint16_t、uint32_t等
全局变量一般g最为前缀g_MaxSize、g_Flag
全局变量或局部指针变量的前缀还需要加指针前缀puint16_t gp_Min、uint8_t *p_MaxSize
C++中类的成员变量需要加m前缀uint8_t m_ReadFlag
不允许在作用于范围之外使用局部变量地址
指针变量*靠近变量名uint8_t *p_Data
不建议使用三重及以上指针
变量定义尽量对齐uint8_t  *p_Data1;
uint8_t  *p_Data2;
uint8_t   m_Data3;
不用类型或含义的变量之间加空行分割开
变量有初始化则赋值=左右需要使用空格对齐uint16_t  g_LargeCnt           = 10;
uint16_t  g_ShortData         =  0;
uint32_t  g_MiddleAverage =  5;
不使用TAB缩进,统一将TAB修改为4个空格
去除程序中没用的全局和局部变量等
需要考虑大小端问题
要不被编译器优化、每次都需要重新读此变量值,
尤其是寄存器值,而不是读缓存值,需要在变量前加
volatile
结构体变量需要左对齐且距离起始位置4个空格
结构体内变量命名用小驼峰typedef struct Gpio_Def

    uint8_t       valueLen;
    struct *List nextList;
enum内部成员变量全部大写enum Signal

   S_ONE  =0,
   S_TWO =1
类型名使用大驼峰,两个字符以上加下划线,且需要加上前缀结构体s_XX, 联合体u_XX,枚举e_XXtypedef struct Gpio_Def

    uint8_t       valueLen;
    struct *List nextList;
s_Gpio_Def
建议定义变量时初始化
局部指针变量一定初始化,一般初始化为NULL或其他有意义值
对于指针变量需要进行有效性判断指针判空等
建议枚举内成员赋值要么对第一个变量赋值,要么全部变量都赋值
枚举的列表中,最后变量结束不加,enum Signal

   S_ONE =0,
   S_TWO
不要使用结构体与结构体直接赋值
不要使用结构体传值,多用结构体指针传递减少拷贝

以上是关于项目开发—变量规范的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 开发规范

新人手册

python 命名规范

python——命名规范

Android 开发 命名规范(基础回顾)

code规范 --- 驼峰命名法