• 项目开发—变量规范


    常量规范样例
    常量名用大写,当多个单词组合需要加"_"下划线#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
    }
    不要使用结构体与结构体直接赋值
    不要使用结构体传值,多用结构体指针传递减少拷贝
  • 相关阅读:
    2022-08-25-反射
    关于方法重写/方法覆盖
    LeetCode中等题之找到 K 个最接近的元素
    关于前端的文件下载问题,通过超链接a无法自定义文件名
    ssm Vue的家教平台系统java项目源码
    [Python]Django 配置
    cat命令应用
    hms学习
    机器学习工作岗位
    Apache Maven是什么?|Maven安装
  • 原文地址:https://blog.csdn.net/weixin_44419248/article/details/126495562