【经验交流】香瓜的个人代码规范
2016-12-23 15:06
399 查看
本篇博文最后修改时间:2016年12月23日,15:10。
一、简介
本文简要讲述香瓜编码的代码规范。
二、版权声明
博主:甜甜的大香瓜
声明:喝水不忘挖井人,转载请注明出处。
原文地址:http://blog.csdn.NET/feilusia
联系方式:897503845@qq.com
香瓜BLE之CC2541群:127442605
香瓜BLE之CC2640群:557278427
香瓜BLE之Android群:541462902
香瓜单片机之STM8/STM32群:164311667
甜甜的大香瓜的小店(淘宝店):https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
三、香瓜的代码规范
1、类型的宏替换
1)要求
要求用“#ifndef”判断是否之前被定义过。
2)举例
2、宏定义
1)要求
①宏全为大写的英文字母。
②宏的名称应能读出其功能作用。
2)举例
3、变量
1)要求
①变量名称前的字母含义要求如下
g:global全局。
a:array数组。
s:static静态。
c:const不变常数。
n:变量。
p:指针。
②变量的名称应能读出其功能作用。
2)举例
3、if
1)要求
①“{”与“}”要对齐。
②if与else的上方要注释。
2)举例
4、switch
1)要求
①switch、case、default上都要注释。
②每种情况的具体处理由“{}”包含。
2)举例
5、文件注释
1)要求
至少要包含文件名称、文件作用说明、编码人、最后修改时间。
2)举例
①源文件
6、函数注释
1)要求
至少要包含函数名称、函数作用说明、形参含义、返回值含义、编码人、最后修改时间。
2)举例
一、简介
本文简要讲述香瓜编码的代码规范。
二、版权声明
博主:甜甜的大香瓜
声明:喝水不忘挖井人,转载请注明出处。
原文地址:http://blog.csdn.NET/feilusia
联系方式:897503845@qq.com
香瓜BLE之CC2541群:127442605
香瓜BLE之CC2640群:557278427
香瓜BLE之Android群:541462902
香瓜单片机之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) { …… }
相关文章推荐
- lua中特殊用法
- Python use Selenium to control the webdriver
- spring4 + log4j2+ slf4j的配置
- javaWeb学习(3)——WebServlet格式总结
- java关键字含义
- 修改Eclipse的默认debugKeyStore为带签名的keyStore,方便调试需要验证MD5值的地方
- Python实现简单爬虫功能--批量下载百度贴吧里的图片
- 【VBA编程】12.Workbook对象常用属性
- 使用maven创建的java项目如何添加resources文件夹
- 用python+selenium抓取知乎今日最热和本月最热的前三个问题及每个问题的首个回答并保存至html文件
- java 请求url加时间戳有什么用
- PHP cookie
- QTime成员函数的用法
- python 数值处理内置函数
- 【C++11】新特性——auto的使用
- 20 个顶尖的 Python 机器学习开源项目
- Java 相关书籍
- C++编译与链接(1)-编译与链接过程
- RxJAVA转载 作者:扔物线
- python入门 第8章 切片