【C语言】代码命名规范

【C语言】代码命名规范

#ifndef _MSG_H_
#define _MSG_H_

typedef struct msg_s
{
	uint8_t msgType;
	uint8_t msgId;
	uint8_t msgLen;
	void (*fpSendMsg) (uint8_t *data);
} msg_t,*msg_pt;

msg_t g_msg;//全局变量
void gSendMsg(uint8_t *data);//全局函数

#endif
#include "msg.h"

static msg_t _msg;//文件内静态变量
static void _SendMsg(uint8_t *data){//文件内静态函数
	static int f_msg;//函数内静态变量
}

C命名规范有很多,这里统一下自己的使用习惯,以以上代码为例,说明命名规则:

一、变量的命名

1.以驼峰式命名作为基础

  • 驼峰式命名:混合使用大小写字母来构成标识符的名字,其中第一个单词首字母小写,余下的单词首字母大写,且尽量使用缩写,如:msgType
  • 驼峰式命名补充:若只有一个关键词,使用小写,如:msg

2.下划线辅助定义

下划线只在描述变量属性的时候使用

  • 描述类型:使用后缀
    • _s表示这是一个结构体(struct);struct msg_s{ };
    • _t表示这是一个结构体类型(typedef);typedef struct msg_s{ } msg_t;
    • _pt表示这是一个架构体指针。typedef struct msg_s{ } *msg_pt;
  • 描述作用域:使用前缀
    • g_表示这是一个全局变量(global);msg_t g_msg;
    • _或者n表示这是一个文件内静态变量(native);static msg_t _msg;
    • f_表示这是一个函数内静态变量。{static int f_msg;}

二、函数的命名

1.以帕斯卡命名为基础

帕斯卡(Pascal)命名法和骆驼命名法相似,但帕斯卡命名法则是第一个单词首字母大写。与函数命名相关的(包括函数指针)使用帕斯卡是为了与变量区分。如:void SendMsg (uint8_t *data);

2.前缀辅助定义

因为函数的首字母已经大写,可以直接使用小写的前缀,不需要借助下划线也不至于混淆

  • 描述类型:使用前缀
    • fp表示这是一个函数指针。 void (*fpSendMsg) (uint8_t *data);
  • 描述作用域:使用前缀
    • g表示这是一个全局函数;void gSendMsg(uint8_t *data);
    • _或者n表示是一个文件内静态函数。static void _SendMsg(uint8_t *data);

三、宏定义

全部大写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

外来务工人员徐某

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值