1、中华人民共和国程格式HB/Z 181.5-90 C语言1 主题内容与适用范围本标准规定了使用C语言编程的格式,本标准不涉及程序设计方法和编程技巧。本标准适用于软件开发中的编程工作。2 基本约定2. 1 元符号及表示法的说明a. -缩格指示符符号用作缩格指示符(在实际的程序行文中并不出现),指示该行相对于上行向右缩格,箭头左端与上行左端对齐,箭头右端指示本行开始位置(具体缩格数.可一次选定,一般为24格)。b. (y.可选择符号表示括在其内的内容是可有可无的。除去用于数组下标处外)0c.在说明具体格式时,只标关键字,其它部分仅用汉字说明。d.为了直观,因此有些语法成份是直接通过例子来表示其格式的
2、。e.为了简明,只列出对程序格式有影响的语法成分的格式约定。2. 2 程序单元长度个程序单元(函数.r同)的长度-般不超过4页打印纸(约240行,其中包括注释行。2. 3 程序结构一个完擎的程序应包含如下的结构:主函数描述体外部说明main( ) 外部定义2.4 主函数描述体主函数描述体以注释形式给出,它至少包括下述信息,按顺序为程序单元名及其含义说明版本号及完成日期程序单元的功能航空航天工业部1990-09一18发布1991-02-01实施199 HB/Z 181.5-90 编程人员的姓名,单位E程序修改人员的姓名,单位,修改日期对环境的依赖性调用本程序单元的程序单元名本程序单元调用的其它程
3、序单元名输入参数说明输出参数说明其它需说明的问题非主函数也应该在第一个说明语句之前以注释的形式绘出其描述体。但其中与主函数描述体内容相同的部分可以省略。描述体的具体格式见附录Ao2.5 注释z利用注释可使程序清晰、易读。注释语句的行数一般应占整个程序语句总行数的1/5-1/30注释行要书写整齐。2.6 标识符所有标识符应尽量有明确的含义,必要时可通过注释加以说明。3说明和语句格式约定3. 1 说明说明包含两方面的内容z类型说明、存贮类说明。3. 1. 1 存贮类说明:存贮类分四类:extern,static; register; autor J 四类格式相同为2存贮类区分符类型区分符说明符例:
4、extern int ma桨typedef与之处理相同例,typedef int MILES; 3. 1. 2 类型说明类型包括z基本类型、构造类型。说明格式.类型区分符说明符$3.1.2.1 基本类型基本类型包括:int , char , short , 10ng , uns叩led,f1oat ,double等,它们的说明格式符合上述说明格式.例:int length; OO 3.1.2.2 构造类型3. 1. 2. 2. 1 数组例.inta (10) (10), 3. 1. 2. 2. 2 指针例.int铃ptrto int J 3.1.2.2.3结构倒B或g或8tuct page c
5、har * nameJ intfl吨的)p, struct ch町*name, int fla88 )p, struct page char i nameJ int fla88 struct page P J 3. 1. 2. 2. 4 联合例:union v tag 或gint ivah char骨pv时,)uv,剖,union int ivah char * pval; )uval, HB/Z 181.5-90 201 3. 1. 3 说明时进行初始化格式例.f10at y(4)(3)= 1,1,5,2,4,6,3,5,7 3.2语句3.2. 1 复合语句说明序列语句序列3.2.2 条件语
6、句副表达式语句(else 语句3. 2. 3 while语句while(表达式)语句3.2.4 do语句do 语句while(表达式) 3. 2. 5 for语句HB/Z 181.5-90 for(表达式1.表达式2.表达式3)语句3. 2. 6 owitch语句202 owitch (表达式)case常量表达式1 -语句序列case常量表达式2.语句序列g (defaule. 语句序列3. 2. 7 带标号的语句语句序列标号=语句3. 2. 8 其它语句表达式break J continue, return J return 表达式,goto 表达式,4 其它约定4. 1 外部定义HO/Z
7、181.5-90 外部定义包括:函数定义、数据定义.4. 1. 1 函数定义C存贮类区分符JC类型区分符函数名参数表说明表说明序列语句序列4. 1. 2 数据定义存贮类区分符JC类型区分符初始说明符表,(注2存贮类区分符和类型区分符不能同时省略)4.2 关于换行和折行的处理原则在程序中,除去括在字符串内的8之外,其余在任何地方遇;均换行。换行后,除去该格式要求应缩格以外,其余的均与上行左端对齐。例如说明序列中的说明、语句序列中的语句,每一语句(或说明)都与上一行语句(或说明)对齐。当个逻篱行超出由打印纸或屏幕所提供的宽度时,需要折行,在折行时不应将一个单词拆开,续行也要缩格。若遇到在表达式中需
8、求折行,续行表达式与前一行表达式左端对齐。例如,max (a+b)棉c/(d +e); 203 /提NAME:/龄VERSION:/骨FUNCTION:/骨AUTHOR:/骨MODIFIEDBY. /普DEPENDENCE./骨CALLEDBY: /椅CALLS./铃INPUT: /赞/铸OUTPUT:/祷/普OTHERS.204 HB/Z 181.5-90 附录A描述体细节补充件程序单元名及其含义说明静/版本号及完成日期铃/程序单元的功能赞/编程人员的姓名,单位善/程序修改人员姓名,单位,修改日期祷/对环境的依赖性善/调用本程序单元的程序单元名骨/本程序单元调用的其它程序单元名祷/输入参数说
9、明、输入参数类型说明、输入参数骨/功能说明)(若无输入量则填NONE)骨/输出参数说明、输出参数类型说明、输出参数赞/功能说明X若无输出量则填NONE)提/其它需说明的问题骨/atoi(o) /僻NAME,/骨VERSION,/骨FUNCTION,/* / *AUTHOR, /骨MODlFIEDBY , /骨DEPENDENCE./曾CALLS,/ * INPUT , /骨OUTPUT,char oC), int i , n , sign, /怜okipwbite oace曾/HB/Z 181.5-90 附录B实例参考件)A TOI ,atoi-convert a 8tring to inte
10、ger骨/1. 0,1987,8,23曾/Tb旭rou山eis used tonvert a array,骨/which element 8re characters,铸/Liu Bing ,BU AA普/Liu Bing,BUAA,1988,4,24铃/Th旭routine抱independentof machine幡/none铃/S部a町rayof characters僻/NONE祷/for(i=O, 0 (1) =11 0 (1)=n1I 0(1)=勺,,i+ +) oign= 1: if(o(l) = =+11 oCI)=一,) oign=(oO+)=、+)71.-1,for (n=O, .(1)= 0&(1)罩、9,i+) n=10份n+.(I)一、。,, return (sign怜n),附加说明=本标准由航空航天工业部第三0一研究所提出.本标准由北京航空航天大学负责起草.205