c语言编程规约_第1页
c语言编程规约_第2页
c语言编程规约_第3页
c语言编程规约_第4页
c语言编程规约_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实用标准文案文档编号 产品版本 密级V1.0 保密产品名称:语言编程规约(内部使用)精彩文档实用标准文案拟制: 日期:审核: 日期:审核: 日期:批准: 日期:修订记录日期 修订版本 描述 作者精彩文档实用标准文案前言编程规约应建立与一项工程支出, 且该规约应贯穿整个工程之始终。 采用一些规约有助于提供劳动生产率,并使团队工程软件便于维护。惯用的、号的书写风格以及他人用的一些好方法。可以达到以下目的:可移植性好兼容性好干净整齐易维护性好易看懂简明扼要无论采用什么样的编程风格, 必须在整个工程中采用始终如一的格式。 对于一项大工程的整个团队建议使用同一的编程风格。所以,本团队试用一下 C语言编程规约来规范程序的书写方法。采用共同的编写风格, 可以少发生一些程序维护中令人头痛的事情, 降低维护成本;采用统一的书写方法有助于避免代码的重复编写。C源代码的宽度限制在 80个字符。使用 Fixedsys 字体9号字。源代码超出部分需要将源代码分成两行书写且将注释书写于头上。 除了必要的英文外, 本团队约定所有注释一律使用中文。不得使用英文及其它语言。新来的团队人员在编写代码前应先认真阅读本规约。 以便快速了解和掌握本关于软件编写规范。一、文件头以下是 C语言程序的文件头。公司的名称和地址可写在前几行;然后是标题,标出文精彩文档实用标准文案件的主题内容;接着是著作权声明,以表明软件的专有权。然后是关于侵权的警告说明及购买本软件的联系方式。/*******************************************************************************有限公司* CN_uOS实时操作系统** 此文件属于 CN_uOS实时操作系统的一个子文件, XXXXXXXX 有限公司对其有所有版 *权及保留意见。任何复制和发布本软件的公司及个人,我们将对其追究最终法律责任。* 需要使用部分或全部软件代码的公司及个人需同 XXXXXXXX 有限公司联系。网址:*文件名:*版本:*描述:*作者:*日期:函数列表:******************************************************************************/二、文件包含精彩文档实用标准文案应用工程需要的头文件紧跟在版本变更记录的后面。 本团队约定将所有头文件包含在一个名为 includes.h 的头文件中。除了因要发布为库的头文件外,所有的应用程序头文件都应遵循此约定,不得例外。文件包行的注释格式为:/*******************************************************************************头文件******************************************************************************/#include “includes.h ”三、标志符命名法变量名申明应该是每行一个变量, 而不要在一行中声明多个变量, 这样易于给每一个变量加上注释。形式参数:在函数中应只用小写字母自动变量名:应只用小写字母静态变量和函数:应使用文件名或模块名(或部分文件名、模块名)为前缀。大小写字母混用。外部变量和函数:应使用文件名或模块名(或部分文件名、模块名)为前缀。大小写字母混用。四、缩写、略语及助记符在给变量和函数等标志符命名时可以使用缩写、 略语及助剂符。使用缩写可以使较少的字符描述标志符。但容易引起混乱和误解。为保证其正确性。团队要求,在每个工程项中应使用一张助记词表作为说明。以便查阅。一本有效的词典对于一个团队来说可以提供劳动生产率。不仅是在单独的程序中,应在整个工程项目中始终保持前后一致。助记表格式如下:缩写、略语及助剂符 含义Addr AddressBlk Block精彩文档实用标准文案五、注解如果代码与注解混在一起,就会很难阅读;因此,不混合编写代码和注解,注解应写在代码的右边。当需要将注解写的较长时,以函数描述注解块的形式来写。团队规定。每个函数前都应加函数描述块来描述。每行代码都必须加注释。公司规定在C中,除了注解和文件头等大型说明外,行注释一律使用//来注释而不用/**/注释方式。函数描述块格式:/******************************************************************************* 函 数名:函数功能:输入参数:输出参数:*作 者:*日 期:**-------------------------------------------------------------------------------------------------------------------修改者:修改日期:******************************************************************************/六、数据类型C语言允许使用 typedef 关键字定义新的数据类型。公司规定将使用下列数据类型重定义C语言中标准数据类型来统一规范。/*******************************************************************************数据类型******************************************************************************/typedefunsignedcharI8B;//布尔型typedefunsignedcharI8U;//8位无符号型typedefcharI8S;//8位有符号型typedefunsignedintI16U;//16位无符号型typedefintI16S;//16位有符号型typedefunsignedlongI32U;//32位无符号型typedeflongI32S;//32位有符号型typedeffloatFP;//浮点数精彩文档实用标准文案结构体 s_联合体 u_枚举体 e_函数 f_I8U uc_I8S sc_I16U us_I16S ss_I32U ui_I32S si_FP32 ft_FP64 de_数组 ay_指针 p_宏定义 m_全局变量 _X局部变量 _x七、缩进格式缩进格式是表达函数流程的重要手段。本文使用 TAB键来缩进,值得注意的是不同的编辑软件对 TAB键的定义不一样。公司规定使用 TAB键作为缩进, TAB=4个空格键八、语句和书写格式语句和表达式应在一行中写完,超出部分可使用 符链接到下一段书写但必须对其与原句。公司规定每个 {}必须独立占用一行。对于赋值语句必须按列对齐。九、结构、联合、枚举结构定义需用typedef定义的,可用一个标志符名代表整个结构。结构类型的申明一律使用大小写混和。typedefstructSYS_RAM{// 定义RAM结构I8ULineW;// 定义线宽I8ULineH;// 定义线高}Sys_Ram;typedefstructSYS_ROM{// 定义ROM结构SYS_Ramsys_ram;// 定义RAM结构精彩文档实用标准文案I8Utype;// 定义类型}Sys_Rom;公司规定使用位域 +宏定义来定义位变量。typedefstruct{unsignedcharb7:1;unsignedcharb6:1;unsignedcharb5:1;unsignedcharb4:1;unsignedcharb3:1;unsignedcharb2:1;unsignedcharb1:1;unsignedcharb0:1;}BYTE_FIELD;typedefstruct{unsignedintb15:1;unsignedintb14:1;unsignedintb13:1;unsignedintb12:1;unsignedintb11:1;unsignedintb10:1;unsignedintb9:1;unsignedintb8:1;unsignedintb7:1;unsignedintb6:1;unsignedintb5:1;unsignedintb4:1;unsignedintb3:1;unsignedintb2:1;unsignedintb1:1;unsignedintb0:1;}WORD16_FIELD;typedefunion{unsignedchar byte;BYTE_FIELD bit;}TYPE_BYTE;typedefunion{unsignedint word;unsignedchar byte[2];精彩文档实用标准文案WORD_FIELD16 bit;}TYPE_WORD16;公司规定当一个宏定义为一个结构时,须使用枚举类型进行定义。typedefenum{LOW,HIGH}e_LevelState; //电平状态十、指针公司规定使用在对函数传值调用时,优先使用指针结构。指针规范详请见 C语言。公司规定规定使用函数指针进行数据封装。应大部分 C中未对此进行详细讲解。故在此对函数指针的特殊用法进行讲解。 以便公司成员可以在程序中使用和阅读此类型时不会陌生。同时在公司编写的驱动库中间大量使用此结构。详请见, 《B&B嵌入式软件开发规范》。#include<stdio.h>typedefvoid(*pfn)(void);typedefunion {pfnfirst;int(*ifn)(inta,intb);void(*vfn)(int,int);}msg;intOnInt(inta,intb){printf("a=%d,b=%d\r\n",a,b);returna;}voidOnVoid(int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论