写代码杂谈

命名规范

  • 变量名字应当是变量类型加上变量意义的英文
前缀符号变量类型
cchar
sshort
llong
xportBASE_TYPE 类型、数据结构、任务句柄、队列句柄等定义的变量名的前缀也是 x
p指针
u无符号数据
  • 函数命名是 返回值的前缀+函数定义所在的文件+函数意义
    函数名包含了函数返回值的类型、 函数所在的文件名和函数的功能,如果是私有的函
    数则会加一个 prv(private) 的前缀。特别的, 在函数名中加入了函数所在的文件名, 这大
    大的帮助了用户提高寻找函数定义的效率和了解函数作用的目的, 具体的举例如下:
  1. vTaskPrioritySet()函数的返回值为 void 型, 在 task.c 这个文件中定义。
  2. xQueueReceive()函数的返回值为 portBASE_TYPE 型, 在 queue.c 这个文件中定义。
  3. vSemaphoreCreateBinary()函数的返回值为 void 型, 在 semphr.h 这个文件中定义。

工程目录

  • 一个的项目中应当包含以下文件夹
文件夹含义
HARDWARE外围设备驱动文件
PROJECT项目文件
user用户功能实现函数里面包含function.c(程序功能实现文件)、commen.c(函数实现文件,在多文件中被调用)、main.c(main()必须在这个文件中)
OUTPUT输出文件存放的地址

善用枚举

  • 在一个变量是某个范围内特定的某一个值时,应当使用枚举表示该变量而不是定义 00 01来表示该变量的值,这样会造成变量具体含义明确,你都不知道这个值代表的是什么意思 例如星期,如果其值是1、2、3完全不知道是周几。如果定义成一个枚举,看到变量的值就非常明确其含义了。
typedef enum
{
	MONDAY=0,
	TUESDAY,
	WEDNESDAY,
	THURSDAY,
	FRIDAY,
	SATURDAY,
	SUNDAY,
}WEEK_DAY;

善用结构体

  • 定义结构体可以使得变量结构更加紧凑,可以更加优秀定义一个对象
  • 结构体、枚举、宏定义定义名称都应当用大写字母和下换线,用来和变量区别
  • eg:我们要表示一个正方体,如果2个定义结构体,我们需要定义的变量,变量多了会很混乱。
char cLength1;
char cHeight1;
char cHidth1;

char cLength2;
char cHeight2;
char cHidth2;

假如我们使用结构体,代码结构更加紧凑,含义也更加清晰

typedef struct{
	char cLength;
	char cHeight;
	char cHidth;
}CUBE;
CUBE xCube1,xCube2;

注意:结构体的中的变量在内存中的地址有偏移的情况,可以看我的博文 关于内存对齐

左值和又值

  • 不知道你么你在写代码过程中有没有出现吧 == 和=弄混淆的经历,反正我是有的。所以后来在判断变量的值是否等于某个值时候,我习惯吧变量放右边,因为某个确定的值是常量不能被修改,如果把 **==写成=**编译会报错
int a=5;
if(a==5);
if(5==a);	//推荐这种用法,这样把==写成=的时候编译器会报错
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值