1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/ecbm-ecbm-library-lite

Клонировать/Скачать
ECBM编程风格要点.md 2.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
奈特 Отправлено 13.02.2025 11:37 910f415

ECBM编程风格要点

  1. 函数的参数不能留空,哪怕是不需要参数,也得加上void。

    void fun(void){
    
    }
  2. 库的.h和.c文件统一加载头文件ecbm_core.h。

    #include "ecbm_core.h"//统一加载核心头文件
  3. #if后面的判断,可能会涉及某些条件运算。括号又不要钱,多使用括号来使条件清晰。为了统一观感,即使只有一个条件也要加括号。

    #if (ECBM_ADC_LIB_EN)   //检查本库有没有被使能
  4. 使能类的宏定义,介于可能是某个寄存器的某一位,所以定义非0值为使能打开,0为使能关闭。

    //<q>ADC库
    //<i>该库提供了关于STC8的硬件ADC相关操作函数。
    #define ECBM_ADC_LIB_EN (0)
  5. 宏定义一律大写,变量名和函数名一律小写。名字直接可以用下划线连接。

    #define ECBM_ADC_LIB_EN (0)//宏定义大写。
    float xdata adc_ch15;//变名量小写。
    void fun(void);//程序名小写。
  6. 库使用的变量都应该保持如下的规则命名。非库的代码可以不遵守这条规定。

    [库名]_[功能/作用]_[类型标志]

    类型标志又可分为【作用域】【符号】【类型】

    作用域有

    • g:global的首字母。指全局变量,没有这个标志就是局部变量。

    • d:data的首字母。涵盖了data区、idata区和bdata区的变量,没有就是按编译器默认。

    • x:xdata的首字母。指定为xdata区的变量,没有就是按编译器默认。

    • c:code的首字母。指定为code区的常量,没有就是按编译器默认。

    符号有

    • u:unsigned的首字母。无符号型变量。

    • s:signed的首字母。有符号型变量。

    类型有

    • b:bit的首字母,位变量。

    • 8:8位变量,需要指定有没有符号。

    • 16:16位变量,需要指定有没有符号。

    • 32:32位变量,需要指定有没有符号。

    • f:float的首字母,浮点型变量,不管是单精度还是双精度都是这个。

    • s:struct的首字母,结构体变量,和上面有符号变量相比,可以通过后面有没有数字来判断。

    • a:数组。

  7. 由于库的使能开关是涵盖全部文件的,所以仅有这个#if不参与语句排序。其他的宏定义条件语句都需要和正常的语句进行排序。

  8. 变量的强转,需要将整个变量都括起来,防止keil抽风。

  9. 多变量的运算,多用括号来区分运算的先后顺序,括号是不要钱的,运算优先级搞错是会损失钱的。

  10. 图形化界面中的选项,在文字界面中,应当每一个选项占一行,方便以后修改。

  11. 全宏定义组成语句组,#号需要放在最前面,关键字按语句排序的进位来。而混搭的宏定义语句,为了括号插件能正确识别,#要紧贴语句。

  12. 数值型的宏定义都需要加括号。

  13. 对于.h文件中出现的函数声明,由于不占用flash空间,所以没必要加上宏定义。在.c文件里用宏定义控制编译就好了。

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/ecbm-ecbm-library-lite.git
git@api.gitlife.ru:oschina-mirror/ecbm-ecbm-library-lite.git
oschina-mirror
ecbm-ecbm-library-lite
ecbm-ecbm-library-lite
master