C/C++使用小习惯
2018-09-04 本文已影响0人
orangepi
review代码使人痛苦。希望小小白在写代码的时候给后人留点活路
目录结构
-
【×】 全部混一起不能忍
0.png -
【√】 头文件和源文件放在两个文件夹
1.png
KEIL
- 【×】用习惯sublime + gcc,不理解keil不能显示头文件文件夹的设定,虽然加号点开就能看到头文件,但是看起来非常不清晰
- 【√】当然是分开
keil显示头文件文件夹步骤
- ①
- ② 加groups,add files as image
- ③ 右键头文件改file type
代码
- 每一个头文件都应该用#ifndef包起来,重复#include头文件也没事了
#ifndef __uart_H
#define __uart_H
#endif /*__ uart_H */
-
此类命名让人想死,从命名看不出来具体用途的命名都不是好命名,比如KEY1改成KEY_POWER就好几十倍
-
该删的代码就删掉,接手代码的人会疯的
7.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放函数里面
-
【×】
- 【√】
- git提交代码时,把所有多余空格删掉,避免多人协作时产生不必要冲突
- 莫名其妙的数字请用#define
- 头文件声明的函数尽量只有其它c文件要调用的函数
- 注意封装,减少耦合
- 一行代码不应超过屏幕的一半
- 一个函数超过了150行就应该好好想想了
- 不要全局变量满世界飞,封装封装封装
- 局部变量一定要初始化,ram紧张的时候局部变量不初始化会是乱七八糟的值
- ...