关于C语言编程书写规范的规则和建议

关于C语言编程书写规范的规则和建议
关于C语言编程书写规范的规则和建议

关于C语言编程书写规范的规则和建议

一、头文件

?头文件由三部分内容组成:

1、头文件开头处的版权和版本声明。

2、预处理块。

3、函数和类结构声明等。

?【规则】为了防止头文件被重复引用,应当用ifndef/define/endif结构产生预处理块。

?【规则】用#include 格式来引用标准库的头文件(编译器将从标准库目录开始搜索).

?【规则】用#include “filename.h”格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)

?【建议】头文件中只存放“声明”而不存放“定义”

?【建议】不提倡使用全局变量,尽量不要在头文件中出现象extern int value 这类声明。

二、程序的版式

空行

?【规则】在每个类声明之后、每个函数定义结束之后都要加空行。

?【规则】在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应加空行分隔。

代码行

?【规则】一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。

?【规则】if、for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{}。这样可以防止书写失误。

?【建议】尽可能在定义变量的同时初始化该变量(就近原则)

代码行内的空格

?【规则】关键字之后要留空格。象const、virtual、inline、case 等关键字之后至少要留一个空格,否则无法辨析关键字。象if、for、while等关键字之后应留一个空格再跟左括号‘(’,以突出关键字。

?【规则】函数名之后不要留空格,紧跟左括号‘(’,以与关键字区别。

?【规则】‘(’向后紧跟,‘)’、‘,’、‘;’向前紧跟,紧跟处不留空格。

?【规则】‘,’之后要留空格,如Function(x, y, z)。如果‘;’不是一行的结束符号,其后要留空格。

?【规则】赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“=”、“+=”“>=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<<”,“^”等二元操作符的前后应当加空格。

?【规则】一元操作符如“!”、“~”、“++”、“--”、“&”(地址运算符)等前后不加空格。

?【规则】象“[]”、“.”、“->”这类操作符前后不加空格。

?【建议】对于表达式比较长的for语句和if语句,为了紧凑可以适当地去掉一些空格,如for (i=0; i<10; i++)和if ((a<=b) && (c<=d)) 对齐

?【规则】程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐。

?【规则】{ }之内的代码块在‘{’右边数格处左对齐。

长行拆分

?【规则】代码行最大长度宜控制在70至80个字符以内。代码行不要过长,否则眼睛看不过来,也不便于打印。

?【规则】长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首(以便突出操作符)。拆分出的新行要进行适当的缩进,使排版整齐,语句可读。

注释

?注释符为“/*…*/”。C++语言中,程序块的注释常采用“/*…*/”,行注释一般采用“//…”。注释通常用于:

版本、版权声明;

函数接口说明;

重要的代码行或段落提示。

?【规则】注释是对代码的“提示”,而不是文档。程序中的注释不可喧宾夺主,注释太多了会让人眼花缭乱。注释的花样要少。

?【规则】如果代码本来就是清楚的,则不必加注释。否则多此一举,令人厌烦。例如i++; // i 加1,多余的注释

?【规则】边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。

?【规则】注释应当准确、易懂,防止注释有二义性。错误的注释不但无益反而有害。

?【规则】尽量避免在注释中使用缩写,特别是不常用缩写。

?【规则】注释的位置应与被描述的代码相邻,可以放在代码的上方或右方,不可放在下方。

?【规则】当代码比较长,特别是有多重嵌套时,应当在一些段落的结束处加注释,便于阅读。

三、命名规则

共性规则

?【规则】标识符应当直观且可以拼读,可望文知意,不必进行“解码”。

?标识符最好采用英文单词或其组合,便于记忆和阅读。切忌使用汉语拼音来命名。程序中的英文单词一般不会太复杂,用词应当准确。

例如不要把CurrentValue写成NowValue。

?【规则】标识符的长度应当符合“min-length && max-information”原则。

?【规则】命名规则尽量与所采用的操作系统或开发工具的风格保持一致。

例如Windows应用程序的标识符通常采用“大小写”混排的方式,如AddChild。而Unix应用程序的标识符通常采用“小写加下划线”

的方式,如add_child。别把这两类风格混在一起用。

?【规则】程序中不要出现仅靠大小写区分的相似的标识符。

?【规则】程序中不要出现标识符完全相同的局部变量和全局变量,尽管两者的作用域不同而不会发生语法错误,但会使人误解。

?【规则】变量的名字应当使用“名词”或者“形容词+名词”。

?【规则】全局函数的名字应当使用“动词”或者“动词+名词”(动宾词组)。类的成员函数应当只使用“动词”,被省略掉的名词就是对象本身。

?【规则】用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。

?【建议】尽量避免名字中出现数字编号,如Value1,Value2等,除非逻辑上的确需要编号。这是为了防止程序员偷懒,不肯为命名动脑筋而导致产生无意义的名字(因为用数字编号最省事)。

简单的Windows应用程序命名规则

?【规则】类名和函数名用大写字母开头的单词组合而成。

?【规则】变量和参数用小写字母开头的单词组合而成。

?【规则】常量全用大写的字母,用下划线分割单词。

?【规则】静态变量加前缀s_(表示static)。

?【规则】如果不得已需要全局变量,则使全局变量加前缀g_(表示global)。

?【规则】类的数据成员加前缀m_(表示member),这样可以避免数据成员与成员函数的参数同名。

?【规则】为了防止某一软件库中的一些标识符和其它软件库中的冲突,可以为各种标识符加上能反映软件性质的前缀。例如三维图形标准OpenGL的所有库函数均以gl开头,所有常量(或宏定义)均以GL开头。

表达式和基本语句

?规则】如果代码行中的运算符比较多,用括号确定表达式的操作顺序,避免使用默认的优先级。

复合表达式

?【规则】不要编写太复杂的复合表达式。

?【规则】不要有多用途的复合表达式。

?【规则】不要把程序中的复合表达式与“真正的数学表达式”混淆。

if 语句

?布尔变量与零值比较

【规则】不可将布尔变量直接与TRUE、FALSE或者1、0进行比较。

?整型变量与零值比较

【规则】应当将整型变量用“==”或“!=”直接与0比较。

? 4.3.3 浮点变量与零值比较

【规则】不可将浮点变量用“==”或“!=”与任何数字比较。

?指针变量与零值比较

【规则】应当将指针变量用“==”或“!=”与NULL比较。

?有时候我们可能会看到if (NULL == p) 这样古怪的格式。不是程序写错了,是程序员为了防止将if (p == NULL) 误写成if (p = NULL),而有意把p和NULL颠倒。编译器认为if (p = NULL) 是合法的,但是会指出if (NULL = p)是错误的,因为NULL不能被赋值。

循环语句的效率

?【建议】在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。

?【建议】如果循环体内存在逻辑判断,并且循环次数很大,宜将逻辑判断移到循环体的外面。

for 语句的循环控制变量

?【规则】不可在for 循环体内修改循环变量,防止for 循环失去控制。

?【建议】建议for语句的循环控制变量的取值采用“半开半闭区间”写法。

四、函数设计

参数的规则

?【规则】参数的书写要完整,不要贪图省事只写参数的类型而省略参数名字。如果函数没有参数,则用void填充。

?【规则】参数命名要恰当,顺序要合理。

?【规则】如果参数是指针,且仅作输入用,则应在类型前加const,以防止该指针在函数体内被意外修改。

?【规则】如果输入参数以值传递的方式传递对象,则宜改用“const &”方式来传递,这样可以省去临时对象的构造和析构过程,从而提高效率。

?【建议】避免函数有太多的参数,参数个数尽量控制在5个以内。如果参数太多,在使用时容易将参数类型或顺序搞错。

?【建议】尽量不要使用类型和数目不确定的参数。

返回值的规则

?【规则】不要省略返回值的类型。

?【规则】函数名字与返回值类型在语义上不可冲突。

?【规则】不要将正常值和错误标志混在一起返回。正常值用输出参数获得,而错误标志用return语句返回。

?【建议】有时候函数原本不需要返回值,但为了增加灵活性如支持链式表达,可以附加返回值。

?【建议】如果函数的返回值是一个对象,有些场合用“引用传递”替换“值传递”可以提高效率。而有些场合只能用“值传递”而不能用“引用传递”,否则会出错。

函数内部实现的规则

?【规则】在函数体的“入口处”,对参数的有效性进行检查。

?【规则】在函数体的“出口处”,对return语句的正确性和效率进行检查。

其它建议

?【建议】函数的功能要单一,不要设计多用途的函数。

?【建议】函数体的规模要小,尽量控制在50行代码之内。

?【建议】尽量避免函数带有“记忆”功能。相同的输入应当产生相同的输出。建议尽量少用static局部变量,除非必需。

?【建议】不仅要检查输入参数的有效性,还要检查通过其它途径进入函数体内的变量的有效性,例如全局变量、文件句柄等。

?【建议】用于出错处理的返回值一定要清楚,让使用者不容易忽视或误解错误情况。

五、内存管理

内存分配方式

?内存分配方式有三种:

从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。

在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。

从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete 释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。

常见的内存错误及其对策

?内存分配未成功,却使用了它。常用解决办法是,在使用内存之前检查指针是否为NULL

?内存分配虽然成功,但是尚未初始化就引用它。两个起因:一是没有初始化的观念;二是误以为内存的缺省初值全为零。

?内存分配成功并且已经初始化,但操作越过了内存的边界。

?忘记了释放内存,造成内存泄露。

?释放了内存却继续使用它。

有三种情况:

?程序中的对象调用关系过于复杂,实在难以搞清楚某个对象究竟是否已经释放了内存,此时应该重新设计数据结构,从根本上解决对象管理的混乱局面。

?函数的return语句写错了,注意不要返回指向“栈内存”的“指针”或者“引用”,因为该内存在函数体结束时被自动销毁。

?使用free或delete释放了内存后,没有将指针设置为NULL。导致产生“野指针”。

【规则】用malloc或new申请内存之后,应该立即检查指针值是否为NULL。防止使用指针值为NULL的内存。

【规则】不要忘记为数组和动态内存赋初值。防止将未被初始化的内存作为右值使用。

【规则】避免数组或指针的下标越界,特别要当心发生“多1”或者“少1”操作。

【规则】动态内存的申请与释放必须配对,防止内存泄漏。

【规则】用free或delete释放了内存之后,立即将指针设置为NULL,防止产生“野指针”。

杜绝“野指针”

指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,

指针p被free或者delete之后,没有置为NULL,让人误以为p是个合法的指针。

指针操作超越了变量的作用范围。

指针消亡了,并不表示它所指的内存会被自动释放。

内存被释放了,并不表示指针会消亡或者成了NULL指针。

六、一些编程经验

?越是怕指针,就越要使用指针。不会正确使用指针,肯定算不上是合格的程序员。

?必须养成“使用调试器逐步跟踪程序”的习惯,只有这样才能发现问题的本质

使用const提高函数的健壮性

提高程序的效率

?程序的时间效率是指运行速度,空间效率是指程序占用内存或者外存的状况。

?全局效率是指站在整个系统的角度上考虑的效率,局部效率是指站在模块或函数角度上考虑的效率。

?【规则】不要一味地追求程序的效率,应当在满足正确性、可靠性、健壮性、可读性等质量因素的前提下,设法提高程序的效率。

?【规则】以提高程序的全局效率为主,提高局部效率为辅。

?【规则】在优化程序的效率时,应当先找出限制效率的“瓶颈”,不要在无关紧要之处优化。

?【规则】先优化数据结构和算法,再优化执行代码。

?【规则】有时候时间效率和空间效率可能对立,此时应当分析那个更重要,作出适当的折衷。例如多花费一些内存来提高性能。

?【规则】不要追求紧凑的代码,因为紧凑的代码并不能产生高效的机器码。

一些有益的建议

?【建议】当心那些视觉上不易分辨的操作符发生书写错误。我们经常会把“==”误写成“=”,象“||”、“&&”、“<=”、“>=”这类符号也很容易发生“丢1”失误。然而编译器却不一定能自动指出这类错误。

?【建议】变量(指针、数组)被创建之后应当及时把它们初始化,以防止把未被初始化的变量当成右值使用。

?【建议】当心变量的初值、缺省值错误,或者精度不够。

?【建议】当心数据类型转换发生错误。尽量使用显式的数据类型转换(让人们知道发生了什么事),避免让编译器轻悄悄地进行隐式的数据类型转换。

?【建议】当心变量发生上溢或下溢,数组的下标越界。

?【建议】当心忘记编写错误处理程序,当心错误处理程序本身有误。

?【建议】当心文件I/O有错误。

?【建议】避免编写技巧性很高代码。

?【建议】不要设计面面俱到、非常灵活的数据结构。

?【建议】如果原有的代码质量比较好,尽量复用它。但是不要修补很差劲的代码,应当重新编写。

?【建议】尽量使用标准库函数,不要“发明”已经存在的库函数。

?【建议】尽量不要使用与具体硬件或软件环境关系密切的变量。

?【建议】把编译器的选择项设置为最严格状态。

C语言考试重点(考前必看,吃透必过)

C语言最重要的知识点 总体上必须清楚的: 1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)bit是位是指为0 或者1。 byte是指字节, 一个字节 = 八个位. 概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、define PI 3.1415926; 这个写法是错误的,一定不能出现分号。 3、每个C语言程序中main函数是有且只有一个。 4、在函数中不可以再定义函数。 5、算法:可以没有输入,但是一定要有输出。 6、break可用于循环结构和switch语句。 7、逗号运算符的级别最低,赋值的级别倒数第二。 第一章C语言的基础知识 第一节、对C语言的基础认识 1、C语言编写的程序称为源程序,又称为编译单位。 2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。 3、一个C语言程序有且只有一个main函数,是程序运行的起点。 第二节、熟悉vc++ 1、VC是软件,用来运行写的C语言程序。 2、每个C语言程序写完后,都是先编译,后链接,最后运行。(.c---→.obj---→.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe 文件才可以运行。(常考!) 第三节、标识符 1、标识符(必考内容): 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了 2、标识符分为关键字、预定义标识符、用户标识符。 关键字:不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 预定义标识符:背诵define scanf printf include。记住预定义标识符可以做为用户标识符。

C语言注释规范

C语言注释规范 1.注释原则 同一软件项目开发中,尽量保持代码注释规范和统一。 注释方便了代码的阅读和维护。 边写代码边注释,修改代码时要相应修改注释,保证注释和代码的一致性。 注释要简洁明确,不要出现形容词。 对于写的好的注释,我们将是第一个受益者。 大型软件开发中,通过别人的注释可以快速知道他人所写函数的功能,返回值,参数的使用。 2.文件头部的注释 示例: / * Program Assignment : 该文件的作用 * Author: 作者 * Date: 2013/8/6 14:34 * Description: 该文件的描述 *****/ /* * Source code in : 源代码的路径 * Function List: * initLinear 初始化线性表 * destoryLinear 释放线性表申请的空间 * isLinearEmpty 判断线性表是否为空 * isLinearFull 判断线性表是否为满 * getLinearElementValue 取得下标为index的元素的值 */ 注意:这个函数列表可以快速查询到我们想要了解的函数。 3.结构体,全局变量等的注释 示例: typedef POLYNOMIAL USER_TYPE; /* 新的数据类型的描述*/ int a; /* 全局变量的作用*/ /* 说明结构体的功能*/ typedef struct LINEAR { USER_TYPE *data; /* 每个成员的意义(作用) */ int maxRoom; /* 每个成员的意义(作用) */

int elementCount; /* 每个成员的意义(作用) */ }LINEAR; 4.函数的注释 在逻辑性较强的的地方加入注释,以便其他人的理解,在一定的程度上排除bug。 示例: /* * Function Name: getLinearElementIndex * Purpose: 取得元素的index值 * Params : * @LINEAR linear 线性表实例 * @USER_TYPE var 类型为USER_TYPE的实例 * @int (*)() cmp 提供接口,让用户定义具体比较函数 * Return: int 返回元素的index值 * Limitation: 如果返回-1,则代表不存在var的元素 */ int getLinearElementIndex(LINEAR linear, USER_TYPE var, int (*cmp)()) { /* * 如果逻辑太过复杂,这里写明该算法的过程和思路。 */ boolean found = FALSE; int i; for(i = 0; i < && !found; i++) if(cmp[i], var) == 0) found = TRUE; if(i >= i = NOT_FOUND; return i; }

C语言格式书写规范

C语言书写规范指南 第1章文件结构 每个C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。 C程序的头文件以“、h”为后缀,C程序的定义文件以“、c”为后缀。 1、1版权与版本的声明 版权与版本的声明位于头文件与定义文件的开头(参见示例1-1),主要内容有: (1)版权信息。 (2)文件名称,标识符,摘要。 (3)当前版本号,作者/修改者,完成日期。 (4)版本历史信息。 /* *Copyright(c)2001,吉林大学物理学院无线电 *Allrightsreserved、 * *文件名称: *文件标识: *摘要:简要描述本文件的内容 * *当前版本:1、1 *作者:输入作者(或修改者)名字 *完成日期:2007年7月20日 * *取代版本:1、0 *原作者:输入原作者(或修改者)名字 *完成日期:2007年5月10日 */ 示例1-1版权与版本的声明

1、2头文件的结构 头文件由三部分内容组成: (1)头文件开头处的版权与版本声明(参见示例1-1)。 (2)预处理块。 (3)函数与类结构声明等。 假设头文件名称为SCL_SPI、h,头文件的结构参见示例1-2。 【规则1-2-1】为了防止头文件被重复引用,应当用#ifndef/#define/#endif结构产生预处理块。 【规则1-2-2】用#include <>格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。 【规则1-2-3】用#include “”格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。 【规则1-2-4】#include 后面使用TAB键控制排版。 【规则1-2-5】头文件中只存放“声明”而不存放“定义” 【规则1-2-6】全局变量在头文件中声明,在、c文件中定义 、h extern in tvalue; 声明。 、c in tvalue=0x10; 定义。 【规则1-2-7】局部变量在、c中定义(static)unsigned in tvalue; 定义。 //版权与版本声明见示例1-1,此处省略。 #ifndef SCL_SPI_H //防止SCL_SPI、h被重复引用 #define SCL_SPI_H #include //引用标准库的头文件 … #include “SCL_CAN、h” //引用非标准库的头文件 … void Function1(…);//全局函数声明 … extern unsign int value;//全局变量声明 #endif 示例1-2C头文件的结构 1、3定义文件的结构 定义文件有三部分内容: (1)定义文件开头处的版权与版本声明(参见示例1-1)。 (2)对一些头文件的引用。 (3)程序的实现体(包括数据与代码)。

C语言课程标准

软件技术专业核心课程标准

《C语言程序设计》课程标准 1.前言 1.1 课程类别 专业课 1.2 适用专业 软件技术专业 1.3 课程性质 必修课 1.4 设计思路 本课程是大学一年级学生第一次接触到计算机的程序设计语言,在教学方法上采用课堂讲授、演讲和上机实践相结合,以能力培养为出发点以具备程序设计能力为教学目标。理论教学以C语言为最基本、最常用的功能(数据表达和流程控制)为重点教学,以:“够用”、“必须”为标准,在掌握必要的理论知识上从问题分析、建立数学模型、算法设计和编码、测试等方面,重点讲授程序设计的思想和方法以及设计风格,要使学生能够从较高的角度认识课程的学习目的,应看重对程序设计语言(并一定只是C语言)的特点、学习方法和应用能力的培养。 在教学过程中,应通过丰富的图片、动画、演示来帮助学生学习。 本课程实践性很强,在实践教学中以培养学生的独立思考能力与动手能力为主导原则,由教师布置时间内容和要求,并展示项目的参考作品,有学生独立上机编写并调试程序,解决实际问题,教师给予必要的辅导。要求学生通过上机训练巩固、验证、扩充或综合运用课堂讲授内容,从而进一步加深对知识的理解与掌握,培养构思解决问题的思路和良好的编程能力。 在学习方法上要求学生要“弄清概念、注重实践、由浅入深、循序渐进”。 2.课程目标 学习本课程后,学生应达到以下教学目标: 1.能正确使用C语言的标识符、数据类型、常量、变量、运算符、表达式、基本语句等基础知识; 2.认识算法流程图常用符号,能看懂算法流程图; 3.能编写简单的顺序结构,选择结构和循环结构的程序; 4.能使用函数进行模块化结构的程序设计;

C语言编写规范之注释

1、头文件包含Includes 2、私有类型定义 Private typedef 3、私有定义Private define 4、私有宏定义 Private macro 5、私有变量 Private variables 6、私有函数原型Private function prototypes 7、私有函数Private functions 8、私有函数前注释 /****************************************************************************** * * Function Name : FSMC_NOR_Init * Description : Configures the FSMC and GPIOs to interface with the NOR memory. * This function must be called before any write/read operation * on the NOR. * Input : None * Output : None * Return : None ******************************************************************************* / 9、程序块采用缩进风格编写,缩进空格为4。 10、相对独立的程序块之间、变量说明之后必须加空行; 11、较长的字符(>80字符)要分成多行书写,长表达式要在低优先级操作符划分新行,操作符放在新行之首,新行要恰当缩进,保持排版整齐; 12、循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首; 13、若函数或过程中的参数较长,则要进行适当的划分。 14、不允许把多个短语句写在一行中,即一行只写一条语句。 15、if、for、do、while、case、switch、default等语句自占一行,且if、for、 do、while等语句的执行语句部分无论多少都要加括号{}。 16、对齐只使用空格键,不使用TAB键; 17、 函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case 语句下的情况处理语句也要遵从语句缩进要求 18、 程序块的分界符(如C/C++语言的大括号‘{’和‘}’)应各独占一行并且位于同一 列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以 及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。 19、 在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或

书写C语言程序的注意事项

书写C语言程序的注意事项 1、每一C程序必须有一个main( ),且也只能有一个main( ),程序始终是从main的第一个’{‘开 始执行的;如果遇到调用函数,流程就转向对应的被调用函数,执行被调用函数中的相应语句,直到遇到return语句或‘}’时,流程又返回到主调函数中的调用处,继续执行其后的后续语句,直到遇到主函数main( )后的最后一个‘}’为止,此时结束整个程序; 2、分号是C语句的结束符,而不是分隔符,除以下情形不用分号外,其余情形都必须用分号: 1)绝对不能用分号 a)命令行后不用,即程序最开头的#include “”和#define …… b)main( )后不用; c)子函数的函数首项后不用; d)‘{’后不用; e)‘}’后不用;但是在结构体、共用体、枚举类型后的‘}’后必须用;

f)switch( )后不用; g)case常量后不用; h)default后不用; 2)可用可不用分号的情形,用了虽然没有语法错误,但是一般达不到程序设计的目的。 i)if( )后 j)else后 k)while( )后 l)for( )后 3、C语言允许有注释语句,一旦被注释起来的语句,程序是不会执行的,其注释格式为: a)/*注释内容*/:可以放于一行进行注释,也可以C语句的行末进行注释,还可以将几行一起进行注释; b)//注释内容:只能注释一行 4、C语句中的格式符是以%开头,其后紧跟一个格式说明符,如: int:%d

char:%c float:%f long:%ld unsigned:%u; double:%f,%e,%lf,%le; 八进制数:%o 十六进制数:%x; 如果要在屏幕上输出一个%,则必须用两个%来输出; 5、C程序中用到的所有变量,都必须“先定义,后使用”,且“先有值,后运算”; 6、scanf( )和printf( )中的双引号中的格式符必须从左到右与其后的输入项、输出项类型匹配、个 数相等。 7、scanf( )中的输入项前应该跟地址符&,而格式符%s对应的输入项除外; 如:int a,b;

C语言书写规范

1.C语言书写规范 1.1符号命名规则 1.1.1符号名包括模块名、常量名、标号名、子程序名等。这些名字应该能反映它所代表的实际东西,具有一定的意义,使其能够见名知义,有助于对程序功能的理解。命名采用匈牙利命名法。规则如下: (1)所有宏定义、枚举常数和const变量,用大写字母命名。在复合词里用下划线隔开每个词。 (2)复合词中每个单词的第一个字母大写。除了规则5.1.1.1以外,避免使用下划线。 (3)类、类型定义和枚举型名的第一个字母大写。 (4)函数名是复合词的,第一个词采用全部小写,随后每个单词采用第一个字母大写,其它字母小写方式;如果是单个词的,采用全部小写方式。 (5)循环变量可采用i, j, k等,不受上述规则限制。 (6) 类的成员变量应采用m_开头。 (7) 全局变量词头为g_ 。 (8) 临时变量词头为tmp_ 。 (9) 对结构体内的变量命名, 遵循变量的具体含义命名原则 (10)用小写字母的前缀表示变量的类型,前缀的下一个字母用大写。 表1 词头类型词头类型 ch char l long i integer u unsigned b boolean p pointer f float lp lon g pointer d doubl e s string st structure sz ASCII string by byte n short int H handle x,y 分别为x,y坐标

dw DWORD fn function 表2 词头变量名词头变量名 task task sig signal sb binary semaphores wd watchdog sm mutual exclusion semaphores tm timer sc counting semaphores msg message pipe pipe 例: #define ARRAY_SIZE 24 /*规则5.1.1.1*/ int g_iFlag; class MyClass /*规则5.1.1.3*/ { }; void someFunc( ) /*规则5.1.1.2和5.1.1.4*/ { .2. Q/ECC/BJ 010—2001 int nArray[ARRAY_SIZE]; unsigned char uchByte; char szName[ ]; char *pszName = szName; }

C基本书写规范

C#书写规范 一、命名 对于理解应用程序的逻辑流,命名方案是最有影响力的一种帮助。名称应该说明“什么”而不是“如何”。通过避免使用公开基础实现(它们会发生改变)的名称,可以保留简化复杂性的抽象层。例如,可以使用GetNextStudent(),而不是GetNextArrayElement()。 命名原则是: 选择正确名称时的困难可能表明需要进一步分析或定义项的目的。使名称足够长以便有一定的意义,并且足够短以避免冗长。唯一名称在编程上仅用于将各项区分开。表现力强的名称是为了帮助人们阅读;因此,提供人们可以理解的名称是有意义的。不过,请确保选择的名称符合适用语言的规则和标准。 以下几点是推荐的命名方法。 1、方法、属性、变量规范 ?避免容易被主观解释的难懂的名称,如方面名AnalyzeThis(),或者属性名xxK8。这样的名称会导致多义性。 ?在面向对象的语言中,在类属性的名称中包含类名是多余的,如Book.BookTitle。而是应该使用Book.Title。 ?使用动词-名词的方法来命名对给定对象执行特定操作的例程,如CalculateInvoiceTotal()。 ?在允许函数重载的语言中,所有重载都应该执行相似的函数。 ?只要合适,在变量名的末尾或开头加计算限定符(Avg、Sum、Min、Max、Index)。 ?在变量名中使用互补对,如min/max、begin/end 和open/close。 ?鉴于大多数名称都是通过连接若干单词构造的,请使用大小写混合的格式以简化它们的阅读。另外,为了帮助区分变量和例程,请对例程名称使用Pascal 大小写处理(CalculateInvoiceTotal),其中每个单词的第一个字母都是大写的。对于变量名,请使用camel 大小写处理(documentFormatType),其中除了第一个单词外每个单词的第一个字母都是大写的。 ?布尔变量名应该包含Is,这意味着Yes/No 或True/False 值,如fileIsFound。 ?在命名状态变量时,避免使用诸如Flag的术语。状态变量不同于布尔变量的地方是它可以具有两个以上的可能值。不是使用documentFlag,而是使用更具描述性的名称,如documentFormatType。(此项只供参考) ?即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义的名称。仅对于短循环索引使用单字母变量名,如i或j。 ?可能的情况下,尽量不要使用原义数字或原义字符串,如For i = 1 To 7。而是使用命名常数,如For i = 1 To NUM_DAYS_IN_WEEK以便于维护和理解。 二、代码书写规范 格式化使代码的逻辑结构很明显。花时间确保源代码以一致的逻辑方式进行格式化,这对于您和你的开发小组,以及以后维护源代码的其他开发人员都有很大的帮助。 以下几点是推荐的格式化方法。

C语言的规范(非常经典)

C语言的规范 C语言的规范2007-11-03 08:20A.1 排版 1-1:程序块要采用缩进风格编写,缩进的TAB键一个。 1-2:相对独立的程序块之间、变量说明之后必须加空行。 1-3:较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。 1-4:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。 1-5:若函数或过程中的参数较长,则要进行适当的划分。 1-6:不允许把多个短语句写在一行中,即一行只写一条语句。 1-7:if、while、for、default、do等语句自占一行。 1-8:对齐只使用TAB键,不使用空格键。 1-9:函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,ca se语句下的情况处理语句也要遵从语句缩进要求。 1- 10:程序块的分界符(如C/C++语言的大括号'{'和'}')应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while0、switch、case语句中的程序都要采用如上的缩进方式。 1-11:在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如->),后不应加空格。 1-12: 程序结构清析,简单易懂,单个函数的程序行数不得超过100行。 A.2 注释 2-1:一般情况下,源程序有效注释量必须在20%以上。 2-2:说明性文件(如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明。 2-3:源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等。 2-4:函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值、调用关系(函数、表)等。 2-5:边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。 2-6:注释的内容要清楚、明了,含义准确,防止注释二义性。 2-7:避免在注释中使用缩写,特别是非常用缩写。 2-8:注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。 2-9:对于所有有物理含义的变量、常量,如果其命名不是充分自注释的,在声明时都必须加以注释,说明其物理含义。变量、常量、宏的注释应放在其上方相邻位置或右方。 2-10:数据结构声明(包括数组、结构、类、枚举等),如果其命名不是充分自注释的,必须加以注释。对数据结构的注释应放在其上方相邻位置,不可放在下面;对结构中的每个域的注释放在此域的右方。 2-11:全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它以及存取时注意事项等的说明。

C语言基础知识(详细版)

C语言程序的结构认识 用一个简单的c 程序例子,介绍c 语言的基本构成、格式、以及良好的书写风格,使小伙伴对 c 语言有个 初步认识。 例1:计算两个整数之和的c 程序: #include main() { int a,b,sum; /* 定义变量a,b ,sum 为整型变量*/ a=20; /* 把整数20 赋值给整型变量a*/ b=15; /* 把整数15 赋值给整型变量b*/ sum=a+b; /* 把两个数之和赋值给整型变量sum*/ printf( “ a=%d,b=%d,sum=%d\n” ,a,b,sum); /* 把计算结果输出到显示屏上*/ } 重点说明: 1、任何一个c 语言程序都必须包括以下格式: main() { } 这是c 语言的基本结构,任何一个程序都必须包含这个结构。括号内可以不写任何内容,那么该程序将不执行任何结果。 2、main() - 在c 语言中称之为“主函数” ,一个c 程序有且仅有一个main 函数,任何一个c 程序总是从 main 函数开始执行,main 函数后面的一对圆括号不能省略。 3、被大括号{ }括起来的内容称为main 函数的函数体,这部分内容就是计算机要执行的内容。 4、在{ }里面每一句话后面都有一个分号(; ),在c 语言中,我们把以一个分号结尾的一句话叫做一个 c 语 言的语句,分号是语句结束的标志。 5、printf( “ a=%d,b=%d,sum=%d\n” ,a,b,sum); 通过执行这条c 语言系统提供给我们直接使用的屏幕输出 函数,用户即可看到运行结果,本程序运行后,将在显示器上显示如下结果: a=20,b=15,sum=35 6、#include 注意:(1)以#号开头 (2)不以分号结尾这一行没有分号,所以不是语句,在c 语言中称之为命令行,或者叫做“预编译处理命令” 。 7、程序中以/* 开头并且以*/ 结尾的部分表示程序的注释部分,注释可以添加在程序的任何位置,为了提高程序的可读性而添加,但计算机在执行主函数内容时完全忽略注释部分,换而言之就是计算机当做注释部分不存在于主函数中。 C程序的生成过程 C程序是先由源文件经编译生成目标文件,然后经过连接生成可执行文件。 源程序的扩展名为.c ,目标程序的扩展名为.obj , 可执行程序的扩展名为.exe 。

关于C语言编程书写规范的规则和建议

关于C语言编程书写规范的规则和建议 一、头文件 ?头文件由三部分内容组成: 1、头文件开头处的版权和版本声明。 2、预处理块。 3、函数和类结构声明等。 ?【规则】为了防止头文件被重复引用,应当用ifndef/define/endif结构产生预处理块。 ?【规则】用#include 格式来引用标准库的头文件(编译器将从标准库目录开始搜索). ?【规则】用#include “filename.h”格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索) ?【建议】头文件中只存放“声明”而不存放“定义” ?【建议】不提倡使用全局变量,尽量不要在头文件中出现象extern int value 这类声明。 二、程序的版式 空行 ?【规则】在每个类声明之后、每个函数定义结束之后都要加空行。 ?【规则】在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应加空行分隔。 代码行 ?【规则】一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。 ?【规则】if、for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{}。这样可以防止书写失误。 ?【建议】尽可能在定义变量的同时初始化该变量(就近原则) 代码行内的空格 ?【规则】关键字之后要留空格。象const、virtual、inline、case 等关键字之后至少要留一个空格,否则无法辨析关键字。象if、for、while等关键字之后应留一个空格再跟左括号‘(’,以突出关键字。 ?【规则】函数名之后不要留空格,紧跟左括号‘(’,以与关键字区别。 ?【规则】‘(’向后紧跟,‘)’、‘,’、‘;’向前紧跟,紧跟处不留空格。 ?【规则】‘,’之后要留空格,如Function(x, y, z)。如果‘;’不是一行的结束符号,其后要留空格。 ?【规则】赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“=”、“+=”“>=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<<”,“^”等二元操作符的前后应当加空格。 ?【规则】一元操作符如“!”、“~”、“++”、“--”、“&”(地址运算符)等前后不加空格。 ?【规则】象“[]”、“.”、“->”这类操作符前后不加空格。 ?【建议】对于表达式比较长的for语句和if语句,为了紧凑可以适当地去掉一些空格,如for (i=0; i<10; i++)和if ((a<=b) && (c<=d)) 对齐 ?【规则】程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐。 ?【规则】{ }之内的代码块在‘{’右边数格处左对齐。 长行拆分 ?【规则】代码行最大长度宜控制在70至80个字符以内。代码行不要过长,否则眼睛看不过来,也不便于打印。 ?【规则】长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首(以便突出操作符)。拆分出的新行要进行适当的缩进,使排版整齐,语句可读。

c语言规范5.0中文版

竭诚为您提供优质文档/双击可除c语言规范5.0中文版 篇一:c语言设计规范 篇二:关于c语言编程书写规范的规则和建议 关于c语言编程书写规范的规则和建议 一、头文件 1、头文件开头处的版权和版本声明。 2、预处理块。 3、函数和类结构声明等。头文件由三部分内容组成:【规则】为了防止头文件被重复引用,应当用 ifndef/define/endif结构产生预处理块。 【规则】用#include格式来引用标准库的头文件(编译器将从标准库目录开始搜索). 【规则】用#include“filename.h”格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)【建议】头文件中只存放“声明”而不存放“定义” 【建议】不提倡使用全局变量,尽量不要在头文件中出现象externintvalue这类声明。 二、程序的版式 空行

【规则】在每个类声明之后、每个函数定义结束之后都要加空行。 【规则】在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应加空行分隔。 代码行 【规则】一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。【规则】if、for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{}。这样可以防止书写失误。【建议】尽可能在定义变量的同时初始化该变量(就近原则) 代码行内的空格 【规则】关键字之后要留空格。象const、virtual、inline、case等关键字之后至少要留一个空格,否则无法辨析关键字。象if、for、while等关键字之后应留一个空格再跟左括号 ‘(’,以突出关键字。 【规则】函数名之后不要留空格,紧跟左括号‘(’,以与关键字区别。 【规则】‘(’向后紧跟,‘)’、‘,’、‘;’向前紧跟,紧跟处不留空格。 【规则】‘,’之后要留空格,如Function(x,y,z)。如 果‘;’不是一行的结束符号,其后要留空格。

C语言编程规范

编码规范 1. 头文件编码规范 (2) 2. 函数编写规范 (2) 3. 标识符命名与定义 (2) 3.1通用命名规则 (2) 3.2 变量命名规则 (3) 3.3函数命名规则 (3) 3.4 宏的命名规则 (3) 4. 变量 (3) 5. 宏、常量 (4) 6. 质量保证 (4) 7. 程序效率 (5) 8. 注释 (5) 9. 排版与格式 (6) 10. 表达式 (7) 11. 代码编辑、编译 (7) 12. 安全性 (7) 13. 可读性 (7) 14. 可测性 (7) 15. 单元测试 (8) 16. 可移植性 (8)

1. 头文件编码规范 1. 禁止头文件循环依赖。 2. .c/.h文件不要包含用不到的头文件。 3. 禁止在头文件中定义变量。 4. 同一产品统一包含头文件排列方式。(如功能块排序、文件名升序、稳定度排序。) 5. 只能通过包含头文件的方式使用其他.c提供的接口,禁止在.c中通过extern的方式使用外部函数接口、变量。 2. 函数编写规范 1. 一个函数仅完成一件功能。 2. 重复代码应该尽可能提炼成函数。 3.为简单功能编写函数 4.函数的返回值要清楚、明了,让使用者不容易忽视错误情况。 5. 避免函数过长,新增函数不超过100行(非空非注释行)。 6. 避免函数的代码块嵌套过深,新增函数的代码块嵌套不超过4层。 7. 可重入函数应避免使用全局变量和禁止使用static变量。 8. 设计高扇入,合理扇出(小于7)的函数。 9. 废弃代码(没有被调用的函数和变量)要及时注释(有助于更好理解程序)。 10. 对所调用函数的错误返回码要仔细、全面地处理。 11. 函数不变参数使用const。 12. 函数应避免使用全局变量、静态局部变量和I/O操作,不可避免的地方应集中使用。 13. 函数的参数个数不超过5个。 14. 减少或禁止函数本身或函数间的递归调用 3. 标识符命名与定义 3.1通用命名规则 1. 标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。 2. 除了常见的通用缩写以外,不使用单词缩写,不得使用汉语拼音。 示例: argument 可缩写为arg buffer 可缩写为buff clock 可缩写为clk command 可缩写为cmd compare 可缩写为cmp configuration 可缩写为cfg device 可缩写为dev error 可缩写为err hexadecimal 可缩写为hex increment 可缩写为inc initialize 可缩写为init maximum 可缩写为max message 可缩写为msg minimum 可缩写为min parameter 可缩写为para

C语言软件编写规范

C语言软件编写规范 以下是为大家整理的c语言软件编写规范的相关范文,本文关键词为语言,软件,编写,规范,北京,森馥,科技,股份有限公司,前言,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在教育文库中查看更多范文。 北京森馥科技股份有限公司 前言: 一个好的程序编写规范是编写高质量程序的保证。清晰、规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试

效率,从而最终保证软件的质量和可维护性。 说明: 本规范适用于公司内使用c语言编码的所有软件。本规范自发布之日起生效,以后新编写的和修改的代码应遵守本规范。 注:使用固件和操作系统源代码应保留其代码风格 1 北京森馥科技股份有限公司 目录 1.排版与格式................................................................................................................. ....................................32.标识符命名与定义................................................................................................................. ........................43.注释书写规范................................................................................................................. .. (6) 2 北京森馥科技股份有限公司 1.排版与格式 规则1:程序块采用缩进风格编写,每级缩进为4个空格。 程序块采用缩进风格编写,每级缩进为4个空格,不使用TAb键,

c语言代码书写规范

c语言代码书写规范 篇一:关于C语言编程书写规范的规则和建议 关于C语言编程书写规范的规则和建议 一、头文件 1、头文件开头处的版权和版本声明。 2、预处理块。 3、函数和类结构声明等。 ? 头文件由三部分内容组成: ? 【规则】为了防止头文件被重复引用,应当用ifndef/define/endif结构产生预处理块。 ? 【规则】用 #include 格式来引用标准库的头文件(编译器将从标准库目录开始搜索). ? 【规则】用 #include “”格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索) ? 【建议】头文件中只存放“声明”而不存放“定义” ? 【建议】不提倡使用全局变量,尽量不要在头文件中出现象extern int value 这类声明。 二、程序的版式 空行 ? 【规则】在每个类声明之后、每个函数定义结束之

后都要加空行。 ? 【规则】在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应加空行分隔。 代码行 ? 【规则】一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。 ? 【规则】if、for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{}。这样可以防止书写失误。 ? 【建议】尽可能在定义变量的同时初始化该变量(就近原则) 代码行内的空格 ? 【规则】关键字之后要留空格。象const、virtual、inline、case 等关键字之后至少要留一个空格,否则无法辨析关键字。象if、for、while等关键字之后应留一个空格再跟左括号‘(’,以突出关键字。 ? 【规则】函数名之后不要留空格,紧跟左括号‘(’,以与关键字区别。 ? 【规则】‘(’向后紧跟,‘)’、‘,’、‘;’向前紧跟,紧跟处不留空格。

标准C语言规范

C语言编码规范 1.文件、函数规范 根据功能划分文件。文件名与主控函数名相同;主控函数必须放在最前面;函数的长度一般不宜超过150行;文件长度不宜超过500行。标准的文件头格式如下: 函数名: 功能: 调用函数:所涉及的主要功能函数 调用参数:必须详细说明 返回值: 编写时间: 修改时间:修改时包含此项 2.命名规范 ①函数命名规范 以便于理解为原则,由一个或多个单词或单词缩写组合而成,单词首字母大写。 如AddItem(),GetInt(),FxaUp() ②变量命名规范 由变量类型为前缀,加上函数命名规范组合而成。具体前缀命名方法如下:sh------short, i------int, l------long, c------char, f------float, d------double, p------pointer 字符串数组也使用p标志 静态变量名前用s标志 数组变量名前用stru标志 全局变量使用前缀g_标志 如:dBalance,fInterest,pName, sCustomer,struPersonWang, g_iOperNo 3.书写规范 ⑴对齐原则 同一层次的语句必须左对齐。“{”和“}”必须独占一行。 ⑵缩进原则 不同层次的语句必须遵从缩进原则,一般缩进四个字符为宜,TAB值设为4。 Case后的语句(简短注释语句除外)应另起一行,且须与“:”相接。 ⑶分行书写原则 当行超过屏幕上的行时,应分行书写。 ⑷注释符要求 单行注释符使用“//”,多行注释符使用“/*……*/”,注释符必须遵从前面3条原则,“/*”应与“*/”对齐。 4.语法规范

C语言头文件作用及写法

C语言头文件作用及写法 头文件几个好处: 1,头文件可以定义所用的函数列表,方便查阅你可以调用的函数; 2,头文件可以定义很多宏定义,就是一些全局静态变量的定义,在这样的情况下,只要修改头文件的内容,程序就可以做相应的修改,不用亲自跑到繁琐的代码内去搜索。 3,头文件只是声明,不占内存空间,要知道其执行过程,要看你头文件所申明的函数是在哪个.c文件里定义的,才知道。 4,他并不是C自带的,可以不用。 5,调用了头文件,就等于赋予了调用某些函数的权限,如果你要算一个数的N次方,就要调用Pow()函数,而这个函数是定义在math.c里面的,要用这个函数,就必需调用math.h 这个头文件。 头文件写法: #include ... //------------------------------- #ifndef MY_POINT #define MY_POINT class Class1 { } class Class2 { } ... #endif 在要使用类定义的文件中加入 #include "头文件名.h " 一般来说,头文件里多数是放的函数定义或函数体。 此外,还有: #ifndef **** #define **** …… #endif 之类的语句,用于控制#define 与#endif之间的内容不被重复定义或插入。 #include 语句起的只是一个插入作用。 也就是说,#include 的文件里的内容可以随便写。 编译器使用#include 的文件里的内容来插入到#include 所在位置。 所以,你说的“头文件”没有固定格式。

如要使用其它头文件中的函数,可以直接在你的头文件中引用。 初学C语言,个人建议你使用C++Builder 6去练习和理解,当然,这要求你有一定的英语水平.在很多情况下会自动的帮你加好头文件,你可以观察它自动生成的文件,代码,以进一步学习。 example: 我截了一小段 /* math.h Definitions for the math floating point package. Copyright (c) 1987, 1991 by Borland International All Rights Reserved. */ #ifndef __MATH_H #define __MATH_H #if !defined( __DEFS_H ) #include <_defs.h> #endif #define HUGE_VAL _huge_dble extern double _Cdecl _huge_dble; #define _LHUGE_VAL _huge_ldble extern long double _Cdecl _huge_ldble; #ifdef __cplusplus extern "C" { #endif double _Cdecl acos (double __x); double _Cdecl asin (double __x); double _Cdecl atan (double __x); double _Cdecl atan2 (double __y, double __x); double _Cdecl ceil (double __x); double _Cdecl cos (double __x); double _Cdecl cosh (double __x); double _Cdecl exp (double __x); double _Cdecl fabs (double __x); double _Cdecl __fabs__ (double __x); /* Intrinsic */ double _Cdecl floor (double __x); double _Cdecl fmod (double __x, double __y); double _Cdecl frexp (double __x, int *__exponent);

相关文档
最新文档