博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RTEMS 源文件coding conventions
阅读量:5935 次
发布时间:2019-06-19

本文共 1496 字,大约阅读时间需要 4 分钟。

RTEMS 源文件编写规则:

1. 参考Doxygen 编写规则,这个比较复杂,会另写一篇博文进行解释。

2. 开头每个文件的简要说明,然后是许可证,参考如下:

/** * @file * * @ingroup TheGroupForThisFile * * @brief Short "Table of Contents" Description of File Contents * * A short description of the purpose of this file. *//* * Copyright (c) 20XX Your Name Or Your Company. * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at * http://www.rtems.org/license/LICENSE. */

3.使用/* */进行注释

4. 在函数体内进行注释,解释但不用冗长

5用英语散文,努力学习语法,拼写和标点符号.

6.使用TODO:发表注释,指出需要改进的代码。 明确说明要做什么

7.使用XXX或FIXME来指示错误/错误/破坏的代码

语言和编译器:

1. 使用c99 c语言官方第二套标准

2.不要使用编译器扩展。

3.对空指针使用NULL,并且对NULL使用显式检查,例如if(ptr!= NULL)而不是if(!ptr)

4.对变量中的位进行显式检查。

比如使用if(XBITS ==(var&XBITS))来检查一组定义的位。

使用if((var&X_FLAGS)!= 0)),而不是if(!!(var&X_FLAGS))来检查集合中至少1个定义的位。

5. 使用'(void)unused' 在设置后立即标记未使用的参数和设置但未使用的变量。

6.不要将函数原型放在C源文件中,任何全局函数都应该在头文件中有一个原型,任何私有函数都应该声明为静态的。

7.在一个头文件中声明全局变量。 在最多一个源文件中定义全局变量。 如果可能,包括将全局变量声明为第一个包含文件的头文件,以确保编译器检查声明和定义,并且头文件是独立的。

8.不要将参数转换为任何printf()或printk()变体。 对于支持的类型,使用<inttypes.h> PRI常量。 对于其中定义了PRI常量的其他POSIX和RTEMS类型,请使用<rtems / inttypes.h>。 这增加了printf()格式的可移植性。

格式:

1.使用space空格而不是tab

2.每行限制为80个字符。

3.将函数返回类型和名称放在一行,如果它们适合。

4.功能名称或类似功能的宏和开口括号之间没有空格。

5.将条形表达式结束后,将大括号放在同一行和一个空格之间。

6.取消引用运算符( - >和.)之间没有空格。

7.不要在一行中使用多个空白行。

8.不要在行末尾使用尾随空格。

可读性:

1. 使用typedef删除'struct',但不要使用typedef来隐藏指针或数组。

2.不要混合变量声明和代码。

3.在块的开始处声明变量。

4.只能在其声明中使用变量的原始初始化。 在变量声明中避免复杂的初始化或函数调用。

5.不要在函数内部声明函数。

6.在条件循环语句中避免复杂的逻辑。

转载于:https://www.cnblogs.com/sichenzhao/p/9320273.html

你可能感兴趣的文章
《数据分析实战:基于EXCEL和SPSS系列工具的实践》——3.4 数据量太大了怎么办...
查看>>
JavaScript应用开发实践指南迷你书
查看>>
autoconf,automake,libtool
查看>>
jQuery的技巧01
查看>>
基于泛型实现的ibatis通用分页查询
查看>>
gopacket 使用
查看>>
AlertDialog对话框
查看>>
我的友情链接
查看>>
办公室几台电脑怎么连一台打印机的具体步骤
查看>>
linux安全---cacti+ntop监控
查看>>
鸟哥的linux私房菜-shell简单学习-1
查看>>
nagios配置监控的一些思路和工作流程
查看>>
iptables+layer7实现访问控制+netfilter/iptables基础
查看>>
通讯组基本管理任务三
查看>>
赫夫曼编码实现
查看>>
html页面显示div源代码
查看>>
基础复习-算法设计基础 | 复杂度计算
查看>>
debian、ubuntu系统下,常用的下载工具
查看>>
带以太网的MicroPython开发板:TPYBoardv201温湿度上传实例
查看>>
如何解压缩后缀名为zip.001,zip.002等的文件
查看>>