<>【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);
<>三、宏定义

全部大写

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信