下载此文档

嵌入式软件 C语言编码规范.docx


文档分类:IT计算机 | 页数:约32页 举报非法文档有奖
1/32
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/32 下载此文档
文档列表 文档介绍

L74
中华人民共和
OB
家标准
GB/TXXXXX—XXXX
嵌入式软件C语言编码规范
EmbeddedSoftwareCLanguageCodingSpecror*/if(gt_len>MAX_GT_LENGTH)
{returnGT_LENGTH_ERROR;//退出之前没有释放gt_buf
}
...//otherprogramcode
}
正确用法示例:
intexample_fun(BYTEgt_len,BYTE*gt_code){
BYTE*gt_buf;
gt_buf=(BYTE*)malloc(MAX_GT_LENGTH);
/*globaltitlelengtherror*/辻(gtlen>MAXGTLENGTH)
{
free(gt_buf);//退出之前释放gt_buf
returnGT_LENGTH_ERROR;
GB/TXXXXX—XXXX
3
}
...//otherprogramcode
}
不应引用已经释放的内存空间。

应防止越界操作数组、指针、内存地址等内存空间。
,字符串拷贝宜使用strncpy库函数代替strcpy库函数,避免长度不够引起的数组越界。
,应注意字符长度,避免长度不够引起的数组越界。
对于内存受限的系统,宜少用动态内存分配,尽量选用数组。
对于内存受限的系统,在分配内存时,应考虑内存碎片的问题。
中断处理类
中断服务程序不应有返回值。
()函数。
对于中断中使用到的非局部变量,在中断处理函数中应对其进行入栈保护。
中断处理程序中的变量,如果会被其他函数执行读操作或者写操作,那么在其他函数读写这个变量前,应先关中断,读写完,再开中断。
对于开关中断,要注意成对匹配。
对于默认开启的中断,如果在某个函数中进行了关闭,在函数退出时需进行相应的开启。对于默认关闭的中断,如果在某个函数中进行了开启,在函数退出时需进行相应的关闭。
宜避免在中断服务程序中进行浮点数运算。

不应随意更改其它模块或系统的有关设置和配置。
不应随意改变与其它模块的接口。
应充分了解系统的接口之后,再使用系统提供的功能。
GB/TXXXXX—XXXX
4


系统运行之初,应初始化有关变量及运行环境。

系统运行之初,应对加载到系统中的数据进行一致性检查。

在硬件系统初始化之前,宜判断工作电压是否已经稳定。


所有变量在使用之前应被初始化。
错误用法示例:
unsignedintx;unsignedinty;
y=x;
/*x没有初始值*/

数组、结构和联合的初始化列表应显式描述。
数组、结构和联合的初始化列表应使用大括号,并使用附加的大括号来指示嵌套的结构;程序员应
显式地考虑和描述复杂数据类型的所有元素,不应忽略某个元素的初始化。
错误用法示例:
intl6_ty[3][2]={1,2,3,4,5,6};
int16_ty[3][2]={{1,2}};
正确用法示例:
int16—ty[3][2]={{1,2},{3,4},{5,6}};
枚举元素的初始化应完整。
5
GB/TXXXXX—XXXX枚举元素的初始化只有两种形式是安全的,一是初始化所有元素,二是只初始化第一个元素。
错误用法示例:
enumE_type{numl,num2=2,num3};

文件注释应采用统一格式。
文件注释示例:
/*
Copyright(c)2007,公司名称
Allrightsreserved.
文件名称:
*摘要:简要描述本文件的内容
*当前版本:,编写者/修改者,修改时间,修改内容
*历史版本:,编写者/修改者,修改时间,修改内容
*/


应保证注释与代码的一致性,无用的注释应删除。
对单条语句代码的注释应放在其上方或右方相邻位置。
对于有物理含义的变量、常量、数据结构(包括数组、结构、类和枚举等),如果其命名不是充分自注释的,在声明时应加以注释,说明其物理含义。
控制语句应用大括号括

嵌入式软件 C语言编码规范 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息