纯C语言实现面向对象分析与示例分享

纯C语言实现面向对象分析与示例分享
纯C语言实现面向对象分析与示例分享

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、每一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基本书写规范

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 程序例子,介绍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语言规范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语言格式书写规范

C语言书写规范指南 第1章文件结构 每个C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。 C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀。 1.1版权和版本的声明 版权和版本的声明位于头文件和定义文件的开头(参见示例1-1),主要内容有: (1)版权信息。 (2)文件名称,标识符,摘要。 (3)当前版本号,作者/修改者,完成日期。 (4)版本历史信息。 /* *Copyright(c)2001,吉林大学物理学院无线电 *Allrightsreserved. * *文件名称:filename.h *文件标识: *摘要:简要描述本文件的内容 * *当前版本: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 “filename.h”格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。 【规则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语言代码书写规范 篇一:关于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,头文件可以定义所用的函数列表,方便查阅你可以调用的函数; 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);

c语言格式书写规范

如对您有帮助,请购买打赏,谢谢您! C语言书写规范指南 第1章文件结构 每个C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。 C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀。 1.1版权和版本的声明 版权和版本的声明位于头文件和定义文件的开头(参见示例1-1),主要内容有: (1)版权信息。 (2)文件名称,标识符,摘要。 (3)当前版本号,作者/修改者,完成日期。 (4)版本历史信息。 /* *Copyright(c)2001,吉林大学物理学院无线电 *Allrightsreserved. * *文件名称:filename.h *文件标识: *摘要:简要描述本文件的内容 * *当前版本: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 “filename.h”格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。 【规则1-2-4】#include 后面使用TAB键控制排版。 【规则1-2-5】头文件中只存放“声明”而不存放“定义”

C语言头文件的使用与写法

C语言头文件的使用与写法。 2009年04月20日星期一23:12 C语言中的.h文件和我认识由来已久,其使用方法虽不十分复杂,但我却是经过了几个月的“不懂”时期,几年的“一知半解”时期才逐渐认识清楚他的本来面目。揪其原因,我的驽钝和好学而不求甚解固然是原因之一,但另外还有其他原因。原因一:对于较小的项目,其作用不易被充分开发,换句话说就是即使不知道他的详细使用方法,项目照样进行,程序在计算机上照样跑。原因二:现在的各种C语言书籍都是只对C语言的语法进行详细的不能再详细的说明,但对于整个程序的文件组织构架却只字不提,找了好几本比较著名的C语言著作,却没有一个把.h文件的用法写的比较透彻的。下面我就斗胆提笔,来按照我对.h 的认识思路,向大家介绍一下。 让我们的思绪乘着时间机器回到大学一年级。C原来老师正在讲台上讲着我们的第一个C语言程序: Hello world! 文件名 First.c main() { printf(“Hello world!”); } 例程-1 看看上面的程序,没有.h文件。是的,就是没有,世界上的万物都是经历从没有到有的过程的,我们对.h的认识,我想也需要从这个步骤开始。这时确实不需要.h文件,因为这个程序太简单了,根本就不需要。那么如何才能需要呢?让我们把这个程序变得稍微复杂些,请看下面这个, 文件名 First.c printStr() { printf(“Hello world!”); } main() {

printStr() } 例程-2 还是没有, 那就让我们把这个程序再稍微改动一下. 文件名 First.c main() { printStr() } printStr() { printf(“Hello world!”); } 例程-3 等等,不就是改变了个顺序嘛, 但结果确是十分不同的. 让我们编译一下例程-2 和例程-3,你会发现例程-3是编译不过的.这时需要我们来认识一下另一个C语言中的概念:作用域. 我们在这里只讲述与.h文件相关的顶层作用域, 顶层作用域就是从声明点延伸到源程序文本结束, 就printStr()这个函数来说,他没有单独的声明,只有定义,那么就从他定义的行开始,到first.c文件结束, 也就是说,在在例程-2的main()函数的引用点上,已经是他的作用域. 例程-3的main()函数的引用点上,还不是他的作用域,所以会编译出错. 这种情况怎么办呢? 有两种方法 ,一个就是让我们回到例程-2, 顺序对我们来说没什么, 谁先谁后不一样呢,只要能编译通过,程序能运行, 就让main()文件总是放到最后吧. 那就让我们来看另一个 例程,让我们看看这个方法是不是在任何时候都会起作用. 文件名 First.c play2()

C语言编程规范之misrac

…安全第一?的C语言编程规范 作者:清华大学陈萌萌邵贝贝 编者按:C语言是开发嵌入式应用的主要工具,然而C语言并非是专门为嵌入式系统设计,相当多的嵌入式系统较一般计算机系统对软件安全性有更苛刻的要求。1998年,MISRA指出,一些在C看来可以接受,却存在安全隐患的地方有127处之多。2004年,MISRA对C的限制增加到141条。 嵌入式系统应用工程师借用计算机专家创建的C语言,使嵌入式系统应用得以飞速发展,而MISRAC 是嵌入式系统应用工程师对C语言嵌入式应用做出的贡献。如今MISRA C已经被越来越多的企业接受,成为用于嵌入式系统的C语言标准,特别是对安全性要求极高的嵌入式系统,软件应符合MISRA标准。 从本期开始,本刊将分6期,与读者共同学习MISRAC。 第一讲:“…安全第一?的C语言编程规范”,简述MISRAC的概况。 第二讲:“跨越数据类型的重重陷阱”,介绍规范的数据定义和操作方式,重点在隐式数据类型转换中的问题。 第三讲:“指针、结构体、联合体的安全规范”,解析如何安全而高效地应用指针、结构体和联合体。 第四讲:“防范表达式的失控”,剖析MISRAC中关于表达式、函数声明和定义等的不良使用习惯,最大限度地减小各类潜在错误。 第五讲:“准确的程序流控制”,表述C语言中控制表达式和程序流控制的规范做法。 第六讲:“构建安全的编译环境”,讲解与编译器相关的规范编写方式,避免来自编译器的隐患。 C/C++语言无疑是当今嵌入式开发中最为常见的语言。早期的嵌入式程序大都是用汇编语言开发的,但人们很快就意识到汇编语言所带来的问题——难移植、难复用、难维护和可读性极差。很多程序会因为当初开发人员的离开而必须重新编写,许多程序员甚至连他们自己几个月前写成的代码都看不懂。C/C++语言恰恰可以解决这些问题。作为一种相对“低级”的高级语言,C/C++语言能够让嵌入式程序员更自由地控制底层硬件,同时享受高级语言带来的便利。对于C语言和C++语言,很多的程序员会选择C语言,而避开庞大复杂的C++语言。这是很容易理解的——C语言写成的代码量比C++语言的更小些,执行效率也更高。 对于程序员来说,能工作的代码并不等于“好”的代码。“好”代码的指标很多,包括易读、易维护、易移植和可靠等。其中,可靠性对嵌入式系统非常重要,尤其是在那些对安全性要求很高的系统中,如飞行器、汽车和工业控制中。这些系统的特点是:只要工作稍有偏差,就有可能造成重大损失或者人员伤亡。一个不容易出错的系统,除了要有很好的硬件设计(如电磁兼容性),还要有很健壮或者说“安全”的程序。 然而,很少有程序员知道什么样的程序是安全的程序。很多程序只是表面上可以干活,还存在着大量的隐患。当然,这其中也有C语言自身的原因。因为C语言是一门难以掌握的语言,其灵活的编程方式和语法规则对于一个新手来说很可能会成为机关重重的陷阱。同时,C语言的定义还并不完全,即使是国际通用的C语言标准,也还存在着很多未完全定义的地方。要求所有的嵌入式程序员都成为C语言专家,避开所有可能带来危险的编程方式,是不现实的。最好的方法是有一个针对安全性的C语言编程规范,告诉程序员该如何做。 1 MISRAC规范 1994年,在英国成立了一个叫做汽车工业软件可靠性联合会(The Motor Industry Software Reliability Association,以下简称MISRA)的组织。它是致力于协助汽车厂商开发安全可靠的软件的跨国协会,其成员包括:AB汽车电子、罗孚汽车、宾利汽车、福特汽车、捷豹汽车、路虎公司、Lotus公司、MIRA公司、Ricardo公司、TRW汽车电子、利兹大学和福特VISTEON汽车系统公司。 经过了四年的研究和准备,MISRA于1998年发布了一个针对汽车工业软件安全性的C语言编程规范——《汽车专用软件的C语言编程指南》(Guidelines for the Use of the C Language in Vehicle Based Software),共有127条规则,称为MISRAC:1998。

C语言程序设计代码规范

C++语言程序设计代码规范 1 命名规范 本规范对变量、函数、类(结构)等的名称有严格的规定,在编码过程中务必遵守。 1.1 变量命名规范 变量名称采用匈牙利命名法,即:完整的名称由“缀”和“主体”复合而成。“缀”用于指示变量的种类、数值类型、作用域等属性,由小写字符和下划线(_)组成,根据其附着在“主体”的位置分为前缀和后缀两种。“主体”表示变量的语义。 整个变量名称的格式如下: <作用域前缀>[<指针缀>]<类型缀><主体><作用域后缀> 下面详细论述。 1.1.1 作用域缀(前缀和后缀) 作用域前缀处在整个变量名的最前面。常用的作用域前缀为: 作用域后缀处在整个变量名的最后面。只有一种情况使用作用域后缀,就是函数的形参必须以作用域后缀结束。 1.1.2 指针缀 如果一个变量是指针,则必须使用指针缀。指针缀使用字母p表示。 以前,在DOS平台下有短指针和长指针的区别,有时称长指针为lp。在Win32平台下已经不存在这个区别了,所以统一使用p, 而不是lp。 1.1.3 类型缀 类型缀由小写字符构成,用于描述变量的类型。注意: 1.不要私自创造出各种各样的前缀。 2.也没有必要在前缀中仔细区分一些细小的类型区别,那样会给代码维护工作带来额外的麻烦。 常用的类型前缀为:

对于其他不在上面表中的结构、类等复杂数据类型,特别是不常使用的和不通用的,不使用前缀。例如: class Person Jonson; struct DateTime MyDt; 在应用场合明确的情况下,例如:简单的局部变量,它的值类型前缀有时可以省略。具体见下面的例子。 1.1.4 复合前缀 根据以上规则,变量根据它所在的作用域、类型、是否是指针,得到一个复合前缀。例如: char g_szFileName[_MAX_PATH]; //全局字符串变量 char* g_pszFileName; //全局字符串指针变量: char s_szFileName[_MAX_PATH]; //静态字符串变量 char* s_pszFileName; //静态字符串指针变量: char _s_szFileName[_MAX_PATH]; //局部静态字符串变量 char* _s_pszFileName; //局部静态字符串指针变量: char m_szFileName[_MAX_PATH]; //类字符串变量 char* m_pszFileName; //类字符串指针变量: char ms_szFileName[_MAX_PATH]; //类静态字符串变量 char* ms_pszFileName; //类静态字符串指针变量: 更多的例子,参见下面按照作用域讨论变量名一节。 1.1.5 主体 用于描述变量的上下文意义。 一般地,由首字母大写的一个或者多个单词构成,要求用英语作为描述语言。如:FileName,

C语言格式书写规范

C语言格式书写规范 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

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

假设头文件名称为,头文件的结构参见示例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文件中定义 .hexternintvalue;声明。 .cintvalue=0x10;定义。 【规则1-2-7】局部变量在.c中定义(static)unsignedintvalue;定义。 、“->”这类操作符前后不加空格。 【建议2-3-1】对于表达式比较长的for语句和if语句,为了紧凑起见可以适当

C语言编程规范V

C语言编程规范-V1.0 一、文件命名 1.文件主名以字母开头,由字母、数字或下划线组成 2.采用下列文件名后缀: .c(C程序文件) .h(头文件) .o(可重载目标文件) .a(静态库) .sl(动态库) 注:与特定编译器缺省后缀约定冲突的,遵循编译器的缺省后缀约定 3.编辑工具make的控制文件取名makefile 4.自述文件取名readme 二、源程序文件 1.源程序文件段落依照下列顺序: 序言 系统头文件引用(include) 用户头文件引用(include) 全局常量宏定义(define) 全局函数宏定义(define) 全局类型定义(typedef) 全局枚举类型定义(enums) 全局变量说明(extern) 全局变量说明(non-static) 全局变量说明(static) 函数(通常从最高层开始,按层次横向排列。如果定义较多的独立的公用函数,可以考虑按字母顺序排列) 2.序言内容应包括版权声明、文件名、内容描述、版本历史,格式如下:

/* * Copyright 2014,XXX Co., Ltd. All right reserved. * This program prints out messages from a queue. * Edit History: * 2014/11/28 - Created by GaoXuefeng. * 2014/11/29 - Modified by ChenChen to print output in the new form. */ 3.段落之间用空行分隔 4.文件长度尽可能在1000行之内 5.每行长度尽可能不要超过79列 三、头文件 1.用户头文件名避免使用系统头文件名 2.按照功能组织头文件,例如独立的子系统应单独一个头文件 3.与机器相关的说明组成单独头文件 4.多个源文件引用的说明放入头文件中 5.头文件不要嵌套 6.说明函数或外部变量的头文件应在定义该函数或变量的文件中引用 7.不要在头文件中定义变量 8.内部使用的宏、枚举、结构定义不应放入头文件中 9.内部使用的函数(相当于类的私有方法)声明不应放在头文件中 10.只引用需要的头文件 11.每个头文件采用下面的形式避免被重复引用: #ifndef EXAMPLE_H #define EXAMPLE_H ...... /* body of example.h file */

C语言格式书写规范

C语言格式书写规范 Prepared on 22 November 2020

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

假设头文件名称为,头文件的结构参见示例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文件中定义 .hexternintvalue;声明。 .cintvalue=0x10;定义。 【规则1-2-7】局部变量在.c中定义(static)unsignedintvalue;定义。 、“->”这类操作符前后不加空格。 【建议2-3-1】对于表达式比较长的for语句和if语句,为了紧凑起见可以适当

c程序书写规范

c,,程序书写规范 篇一:C语言书写规范 语言书写规范 符号命名规则 符号名包括模块名、常量名、标号名、子程序名等。这些名字应该能反映它所代表的实际东西,具有一定的意义,使其能够见名知义,有助于对程序功能的理解。命名采用匈牙利命名法。规则如下: (1)所有宏定义、枚举常数和const变量,用大写字母命名。在复合词里用下划线隔开每个词。 (2)复合词中每个单词的第一个字母大写。除了规则以外,避免使用下划线。 (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 /*规则*/ int g_iFlag; class MyClass /*规则*/ { }; void someFunc( ) /*规则和*/ { .2. Q/ECC/BJ 010—XX

C语言格式书写要求规范

C语言书写规指南 第1章文件结构 每个C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。 C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀。 1.1和版本的声明 和版本的声明位于头文件和定义文件的开头(参见示例1-1),主要容有: (1)信息。 (2)文件名称,标识符,摘要。 (3)当前版本号,作者/修改者,完成日期。 (4)版本历史信息。 /* *Copyright(c)2001,大学物理学院无线电 *Allrightsreserved. * *文件名称:filename.h *文件标识: *摘要:简要描述本文件的容 * *当前版本: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 “filename.h”格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。 【规则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,此处省略。

相关主题
相关文档
最新文档