C编程风格.
C语言编程风格.
关于编程风格,不同书上有不同规范,不同公司都有自己的一套定义.根据自己的编程习惯做个简要说明.
1.变量定义
在定义变量时,前缀使用变量的类型,之后使用表现变量用途的英文单词或单词缩写,且每个单词或缩写的首字母大写.
| 无符号变量使用u8,u16,u32... | eg:unsigned char u8Temp; |
| 有符号变量使用s8,s16,s23... | eg:int s32Temp; |
| 浮点数变量使用 f32,d64....... | eg:float f32Temp double d64Temp; |
| 字符串变量使用s; | eg:char sTemp; |
| 数组变量使用a; | eg:unsigned char au8Temp[10]; int a32Temp[10]; |
| 指针变量使用p; | eg:unsigned char* pTemp; |
| 枚举变量使用e; | eg: enum Temp eTemp; |
| 结构体变量使用st; | eg:struct student stTemp; |
PS:另外需要说明的是.
unsigned char gu8NoiseDetectFlag = 0; //定义全局变量要在变量名前加上g(globar-->全局的意思)
unsigned char u8PrePointCnt = 0; //定义局部变量就省略掉.
2.宏定义
对于宏定义使用:使用大写或者大写+下划线的方式.
PS:#define CHIP_SENSING_TIMES 1
3.程序排版
一行程序的开始使用tab键进行对其,一行的中间使用空格键进行对齐.
//PS:注意tab缩进.
void Locate_FindStableFreq(void)
{
uint8_t u8Idx;
for(u8Idx=0; u8Idx<20; u8Idx++)
{
TP_FrequencyHopping(FALSE);
if(Locate_CheckNL() <= gcstSysAlgorithm.u8NL_MinLevel)
break;
}
}
4.注释的书写
这里注释分为函数头注释,程序中代码注释.
函数头注释使用如下形式.
PS:由于写的程式并不是自己一个人使用,通常很多时候一个project会由一个Team完成,这时候就非常有必要针对每个function加上必要的注释,这样别人拿来使用的时候,只需通过函数头注释描述就大概能知道此function用途跟意义,这样可以节省开发时间!!!
/*--------------------------------------------------------------------------------------------------------------------*/
/* Function: DrvSPI_Busy */
/* */
/* Parameters: */
/* eSpiPort [in]: Specify the SPI port */
/* */
/* Returns: */
/* TRUE: The SPI port is in busy. */
/* FALSE: The SPI port is not in busy. */
/* */
/* Description: */
/* Check the busy status of the specified SPI port. */
/*-------------------------------------------------------------------------------------------------------------------*/
BOOL DrvSPI_Busy(E_DRVSPI_PORT eSpiPort)
{
// NUC103 have 3 SPI only.
if(eSpiPort >= eDRVSPI_MAX)
return FALSE;
return ((SPI_PORT[eSpiPort]->CNTRL.GO_BUSY)?TRUE:FALSE);
}
5.测试代码
在编译的同时,需要注意添加适当的测试代码,这样可以减轻以后测试代码时的工作量.
这里的第五条,起始已经不仅仅是变成风格的问题,涉及到编程效率,变成习惯的范畴.
不过这真的是一个非常好的习惯!!!
C编程风格.的更多相关文章
- C++服务器开发之基于对象的编程风格
Thread.h #ifndef _THREAD_H_ #define _THREAD_H_ #include <pthread.h> #include <boost/functio ...
- ES6深入学习记录(三)编程风格
今天学习阮一峰ES6编程风格,其中探讨了如何将ES6的新语法,运用到编码实践之中,与传统的JavaScript语法结合在一起,写出合理的.易于阅读和维护的代码. 1.块级作用域 (1)let 取代 v ...
- 个人c语言编程风格总结
总结一下我个人的编程风格及这样做的原因吧,其实是为了给实验室写一个统一的C语言编程规范才写的.首先声明,我下面提到的编程规范,是自己给自己定的,不是c语言里面规定的. 一件事情,做成和做好中间可能隔了 ...
- Google Java编程风格指南
出处:http://hawstein.com/posts/google-java-style.html 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Comm ...
- 编程风格(Coding Style)要求
编程风格(Coding Style)要求2.1.1 文件(1) 每个模块(module)一般应存在于单独的源文件中,通常源文件名与所包含模块名相同.(2) 每个设计文件开头应包含如下注释内容:? 年份 ...
- Javascript编程风格
Douglas Crockford是Javascript权威,Json格式就是他的发明. 去年11月他有一个演讲(Youtube),谈到了好的Javascript编程风格是什么.我非常推荐这个演讲,它 ...
- Google Java编程风格指南中文版
作者:Hawstein出处:http://hawstein.com/posts/google-java-style.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Cre ...
- 《C#编程风格》还记得多少
开始实习之后,才发现自己是多么地菜.还有好多东西还要去学习. 公司很好,还可以帮你买书.有一天随口问了一下上司D,代码规范上面有什么要求.然后D在Amazon上面找到了这本书<C#编程风格(Th ...
- Java学习笔记(四)——google java编程风格指南(上)
[前面的话] 年后开始正式上班,计划着想做很多事情,但是总会有这样那样的打扰,不知道是自己要求太高还是自我的奋斗意识不够?接下来好好加油.好好学学技术,好好学习英语,好好学习做点自己喜欢的事情,趁着自 ...
- Java学习笔记(五)——google java编程风格指南(中)
[前面的话] 年后开始正式上班,计划着想做很多事情,但是总会有这样那样的打扰,不知道是自己要求太高还是自我的奋斗意识不够?接下来好好加油.好好学学技术,好好学习英语,好好学习做点自己喜欢的事情,趁着自 ...
随机推荐
- Android 如何调用自写APK和非自写APK
由于项目需要,调用一个现成的APK,总结之余,顺便把怎么调用自写APK的方法也写上,以做比较 1.如何调用现成的APK: 先上调用代码,然后再一一解释: Intent mIntent = new In ...
- SQL Server 2008 R2 的版本和组件
SQL Server 2008 R2 的版本和组件 SQL Server 2008 R2 其他版本 SQL Server 2008 SQL Server 2005 SQL Server 2012 ...
- MySQL忘记root密码的解决方案
在实际操作中忘记MySQL的root密码是一件令人很头痛的事情,不要急以下的文章就是介绍MySQL的root密码忘记的时候解决方案,我们可以对其进行如下的步骤重新设置,以下就是文章的详细内容描述. ...
- 武汉科技大学ACM:1001: 谁不爱打牌
Problem Description BobLee最近在复习考研,但是他也喜欢打牌(有谁不爱玩牌呢?).但是作为一名ACMER,斗地主显然满足不了他的兴趣,于是他和YYD一起YY出来了一个游戏规则, ...
- osg for android (一) 简单几何物体的加载与显示
1. 首先需要一个OSG for android的环境. (1).NDK 现在Eclipse 对NDK已经相当友好了,已经不需要另外cygwin的参与,具体可以参考 Android NDK开发篇(一) ...
- 解决百度Ueditor编辑器表格不显示边框问题
一.主要内容 CMS使用百度Ueditor编辑器中的表格功能,在编辑模式下可以正常显示边框,而文章发布之后表格不能显示边框.本博文经过查阅相关资料,最终解决了该问题. 二.使用平台 1. dedecm ...
- 0X0000124
求教卡饭网友,都快疯掉了. 最近搞设计,电脑频发出现蓝屏,今晚都出现三次了,新装的win7 64位系统,都是安装的原版光驱. 错误代码基本上都是:0x00000124 (0x000 ...
- bat命令中的变量声明及使用
在bat文件中声明变量的方式如下: set xxx_variant_name=yyyyyyyyyyyy move D:\abc\efg\test.txt %xxx_variant_name%\test ...
- 【学习笔记】【oc】类和对象及类的三大基本特征
1.类和对象 类是抽象化,对象是具体化. (1)定义类: 分为两个步骤,类的声明:定义类的成员变量和方法:@interface 用于声明定义类的接口部分,@end表面定义结束:. 成员变量的定义:{} ...
- 《EM-PLANT仿真技术教程》读书笔记(持续更新中)
1.在系统分析过程中,必须考虑系统所处的环境,因此划分系统与环境的边界是系统分析的首要任务 2.模型可以分为物理模型和数学模型.数学模型可以分为解析模型.逻辑模型.网络模型以及仿真模型.模型可以分为离 ...