项目开发—变量规范

常量规范样例
常量名用大写,当多个单词组合需要加"_"下划线#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
}
不要使用结构体与结构体直接赋值
不要使用结构体传值,多用结构体指针传递减少拷贝
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值