本篇博文最后修改时间:2016年12月23日,15:10。
一、简介
本文简要讲述香瓜编码的代码规范。
二、版权声明
博主:甜甜的大香瓜
声明:喝水不忘挖井人,转载请注明出处。
原文地址:http://blog.csdn.NET/feilusia
联系方式:897503845@qq.com
香瓜BLE之CC2541群:127442605
香瓜BLE之CC2640群:557278427
香瓜单片机之STM8/STM32群:164311667
甜甜的大香瓜的小店(淘宝店):https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
三、香瓜的代码规范
1、类型的宏替换
1)要求
要求用“#ifndef”判断是否之前被定义过。
2)举例
#ifndef GUA_U8
typedef unsigned char GUA_U8;
#endif
#ifndef GUA_U16
typedef unsigned short GUA_U16;
#endif
#ifndef GUA_U32
typedef unsigned long GUA_U32;
#endif
2、宏定义
1)要求
①宏全为大写的英文字母。
②宏的名称应能读出其功能作用。
2)举例
#define GUA_RF_COMMUNICATION_JUDGMENT_FALSE 0
#define GUA_RF_COMMUNICATION_JUDGMENT_TRUE 1
3、变量
1)要求
①变量名称前的字母含义要求如下
g:global全局。
a:array数组。
s:static静态。
c:const不变常数。
n:变量。
p:指针。
②变量的名称应能读出其功能作用。
2)举例
GUA_U8 gaGUA_USART1_rx_buf[GUA_USART1_RX_SIZE] = {0}; //全局数组
GUA_U8 gnGUA_USART1_rx_buf = 0; //全局变量
GUA_U8 nGUA_USART1_rx_buf = 0; //局部变量
static GUA_U8 snGUA_USART1_rx_buf = 0; //静态变量
const static GUA_U8 csnGUA_USART1_rx_buf = 0; //const类型的静态变量
GUA_U8 *gpGUA_USART1_rx_buf; //全局指针
3、if
1)要求
①“{”与“}”要对齐。
②if与else的上方要注释。
2)举例
//如果计数值大于10,则返回true
if(nGUA_Num > 10)
{
return true;
}
//如果计数值小于10,则返回false
else
{
return false;
}
4、switch
1)要求
①switch、case、default上都要注释。
②每种情况的具体处理由“{}”包含。
2)举例
//如果为0则关灯
switch(nbGUA_Char6[3])
{
//关灯
case 0x00:
{
P1_1 = 0; //拉低P11
P1SEL &= ~(1 << 1); //设置P11为IO口
P1DIR |= (1 << 1); //设置P11为输出
break;
}
//开灯
case 0x01:
{
P1_1 = 1; //拉高P11
P1SEL &= ~(1 << 1); //设置P11为IO口
P1DIR |= (1 << 1); //设置P11为输出
break;
}
//其它
default:break;
}
5、文件注释
1)要求
至少要包含文件名称、文件作用说明、编码人、最后修改时间。
2)举例
①源文件
//******************************************************************************
//name: GUA_RF_Communication.c
//introduce: 香瓜的通信协议
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜BLE之CC2541(127442605)
//changetime: 2016.12.08
//******************************************************************************
②头文件
//******************************************************************************
//name: GUA_RF_Communication.h
//introduce: 香瓜的通信协议的头文件
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜BLE之CC2541(127442605)
//changetime: 2016.12.08
//******************************************************************************
6、函数注释
1)要求
至少要包含函数名称、函数作用说明、形参含义、返回值含义、编码人、最后修改时间。
2)举例
//******************************************************************************
//name: GUA_RF_Communication_Judgment
//introduce: RF的通信数据判断
//parameter: npGUA_Receive: 接收缓冲区首地址
//return: true: 数据包正确
// false: 数据包错误
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜BLE之CC2541(127442605)
//changetime: 2016.12.08
//******************************************************************************
GUA_U8 GUA_RF_Communication_Judgment(GUA_U8 *npGUA_Receive)
{
……
}