C/C++使用小习惯

review代码使人痛苦。希望小小白在写代码的时候给后人留点活路


目录结构

  • 【×】 全部混一起不能忍


    0.png
  • 【√】 头文件和源文件放在两个文件夹


    1.png

KEIL

  • 【×】用习惯sublime + gcc,不理解keil不能显示头文件文件夹的设定,虽然加号点开就能看到头文件,但是看起来非常不清晰
2.png
  • 【√】当然是分开
3.png

keil显示头文件文件夹步骤

4.png
  • ② 加groups,add files as image
5.png
  • ③ 右键头文件改file type
6.png

代码

  • 每一个头文件都应该用#ifndef包起来,重复#include头文件也没事了
#ifndef __uart_H
#define __uart_H

#endif /*__ uart_H */

  • 此类命名让人想死,从命名看不出来具体用途的命名都不是好命名,比如KEY1改成KEY_POWER就好几十倍

  • 该删的代码就删掉,接手代码的人会疯的


    7.png

  • 如果实在无法命名,拜托加点注释
8.png

  • 命名拜托规范,要么Adc_Key_Judgment,要么ADC_KEY_JUDGMENT,ADCKEY_Judgment是什么?


    9.png

  • 返回值,要么true/false,要么0/-1,方便if(result)判断返回值,0xFF是什么鬼?


    10.png

  • 一般在主函数while(1)里面喂狗,不要在定时器中断里面喂狗


    11.png

  • 变量尽量缩小影响范围,不要一堆全局变量。只有一个函数用到的变量,static放函数里面

  • 【×】

12.png
  • 【√】
13.png

  • git提交代码时,把所有多余空格删掉,避免多人协作时产生不必要冲突
14.png

  • 莫名其妙的数字请用#define
15.png

  • 头文件声明的函数尽量只有其它c文件要调用的函数
  • 注意封装,减少耦合
  • 一行代码不应超过屏幕的一半
  • 一个函数超过了150行就应该好好想想了
  • 不要全局变量满世界飞,封装封装封装
  • 局部变量一定要初始化,ram紧张的时候局部变量不初始化会是乱七八糟的值
  • ...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容