嵌入式C编程心得和规范

  • 对于每个.c文件,如果函数或者变量不是需要在.h中暴露出来给外部用,全部用关键字static修饰。
  • 全局函数用g_xxxx开头修饰,结构体用xxx_t结尾修饰,单个.c的静态全局变量用s_xxxx开头修饰,枚举用xxxx_e结尾修饰。
  • 设置对齐方式,TAB=4空格对齐,代码风格。
  • 每个switch单个条件必须由break结束,最后都需要包含default条件。
  • 大的数组(如图或者字库),用const修饰,更改存储位置,节约空间。
  • 对于要存进flash的结构体或者数组,用#pack(1)修饰
  • 每个.h用 #ifndef #define #endif 预编译
  • 数组指针指向的回调函数必须赋值。
  • 全局变量必须加以注释说明,尽量减少全局变量的使用,利用传参或者指针来修改变量。
  • 可以在编译器预编译语句填上宏定义来配置编译信息。
  • unsigned 定义的两个变量 0-0xff =1
  • 利用stdint标准头文件,定义uint8_t…等。
  • 利用_attribute_来修饰变量,函数,类型,例如 static int a _attribute_((unused)); //告知编译器这个变量可能不会用到,不要报警告。这个修饰符为了使程序调试信息更准确以及发现一些在语法上没有问题但其实出错的传参类型。
  • _weak 修饰符

Comment