书签 分享 收藏 举报 版权申诉 / 32
上传文档赚钱

类型编码规范与代码重用课件.pptx

  • 上传人(卖家):ziliao2023
  • 文档编号:5860144
  • 上传时间:2023-05-12
  • 格式:PPTX
  • 页数:32
  • 大小:488.97KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《编码规范与代码重用课件.pptx》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    编码 规范 代码 重用 课件
    资源描述:

    1、提纲n 程序设计到软件开发n 编码规范n 代码重用程序设计到软件开发计算机程序:计算机程序是为了产生某种结果而直接或间接地用于计算机的一组语句或指令。计算机软件:计算机程序及其有关文档软件开发:是一种在有限的人力、财力和物力条件下,在特定的时间内成必须完成的工程项目。程序设计:指设计、编制、调试程序的方法和过程 。程序设计=数据结构+算法 软件开发=程序设计+项目管理 程序设计到软件开发p编码规范p规模估算和度量p计划管理p质量管理个体软件过程管理(PSP):如何制订计划,如何控制质量,如何与其他人相互协作等 团队软件过程管理(TSP):强调团队合作,重点解决如何克服协同工作中的问题,如何对待

    2、压力、领导、协调、合作、参与、拖延、质量、多余功能和评价等问题高效的TSP团队应当是经过正确的组建,由技能型人才组成,受到合适的训练,并且实施有效领导的团队。TSP建议的小组协同工作准则“明确任务,明确对项目的控制”。TSP为项目目标、项目任务、角色目标、主要活动的开展提供的基本的准则和脚本 编码规范编码规范是指在软件开发过程中,由开发团队共同制定并遵循的代码编写规范。其主要目的是为了解决代码在团队内部的交流问题,涉及变量、程序结构、函数和文件的等多个方面 h =1.0/(double)n;sum=0.0;for(i=myid+1;i=n;i+=numprocs)x=h*(double)i-0

    3、.5);sum+=f(x);for(s=0.0,h=1.0/(double)n,i=d+1;i=n;s+=f(h*(double)i-0.5),i+=n);p代码1p代码1编码规范指定原则n 基本原则:“清晰易懂”n 制定方法:开发团队共同制定并遵守的原则。Action 说明 示例 Create 创建一个新对象 MPI_Info_create Get 获得一个对象的属性 MPI_Get_count Set 设置对象属性 MPI_Info_set Delete 删除属性 MPI_Info_delete Is 此判断词是否具有特定的属性 MPI函数命名规则ANSI C编码规范n 代码结构与组织n

    4、注释 n 标识符命名规范 n 代码风格与排版 ANSI对C程序设计标准与风格给出了相关的建议,不同软件开发组织结合自身情况,制定自己的编码规范。/*-*-Mode:C;c-basic-offset:4;-*-*/*Changes to this example*(C)2001 by Argonne National Laboratory.*See COPYRIGHT in top-level directory.*/*This example is taken from MPI-The complete reference,Vol 1,*pages 222-224.*Lines after t

    5、he-CUT HERE-were added to make this into a complete *test program.*/#include mpi.h#include mpitest.h#include#include#define MAX_SIZE 64MPI_Datatype transpose_type(int m,int n,MPI_Datatype type);MPI_Datatype submatrix_type(int N,int m,int n,MPI_Datatype type);void Transpose(float*localA,float*localB,

    6、int M,int N,MPI_Comm comm)/*transpose MxN matrix A that is block distributed on processes of comm onto block distributed matrix B */ANSI C编码规范:代码结构与组织源程序(*.c):建议采用如下的方式组织编写源程序 a)包含系统提供的头文件;b)包含自定义头文件;c)数据类型定义;d)常量定义;e)全局变量声明;f)函数定义/*系统头文件*/#include/*stdlib is needed for declaring malloc*/#include/*M

    7、PI系统头文件*/#include mpi.h/*自定义头文件*/#include mechanism.h/*自定义数据类型*/struct studentint id;char name12;/*符号常量*/#define PI 3.1415926/*函数或全局变量声明*/int GlobalReadInteger();void Hello();void Ring();int main(int argc,char*argv)ANSI C编码规范:代码结构与组织头文件(*.h):建议采用如下的方式组织编写a)包含系统提供的头文件b)包含自定义头文件;c)数据类型定义;d)常量定义;e)全局变量

    8、声明;f)外部函数声明。/*Definition of a _complex struct to be used by those who use cabs*and want type checking on their argument*/struct _complex double x,y;/*real and imaginary parts*/;/*Constant definitions for the exception type passed in the*_exception struct */#define _DOMAIN 1/*argument domain error*/#

    9、define _SING 2 /*argument singularity*/#define _OVERFLOW 3/*overflow range error*/extern int abs(int);extern double acos(double);演示:MPI中部分代码ANSI C编码规范:代码结构与组织数据类型定义与声明:尽可能采用相应的typdef struct _iobuf char*_ptr;int _cnt;char*_base;int _flag;int _file;int _charbuf;int _bufsiz;char*_tmpfname;typedef struc

    10、t _iobuf FILE;struct studentint id;char name12;声明变量的形式struct student stu1;struct student使用不是很方便,可以重定义。例如:typedef struct student Student;在使用时,直接使用Student声明变量即可,例如:Student stu1 ANSI C编码规范:代码结构与组织外部函数和外部变量:严格遵循ANSI的相关约定声明外部函数和外部变量。extern int foo;extern int abs(int);extern double acos(double);ANSI C编码规范

    11、:代码结构与组织预编译处理:合理使用预编译处理指令,最大限度的提高系统的灵活性。预编译处理一般用于:符号常量、宏以及条件编译。Winnt.h#ifndef VOID#define VOID voidtypedef char CHAR;typedef short SHORT;typedef long LONG;#endif/UNICODE(Wide Character)types/#ifndef _MACtypedef wchar_t WCHAR;/wc,16-bit UNICODE character#else/some Macintosh compilers dont define wcha

    12、r_t in a convenient location,or define it as a chartypedef unsigned short WCHAR;/wc,16-bit UNICODE character#endifANSI C编码规范:注释代码中的注释主要用于代码的说明,方便对程序的理解。对于刚刚接触程序设计的人员而言,遇到最大的问题是注释内容的多少、详细程度以及位置等。添加注释的一般原则是“够用即可”。p文件说明:一般放在源程序文件的开始位置。对文档整体说明,主要说明,包括文档名称、作者、创建时间、文档功能、修改记录。/*Filename:integrator.c*Author

    13、:Brader zhao *Date:2008年8月1日*Description:本文件包含高级语言程序教材中定积分运算案例*所需要的函数,包括主函数。*Modified:*2008-09-01 Brader Zhao 修改了主函数中的积分区间*/ANSI C编码规范:注释代码中的注释主要用于代码的说明,方便对程序的理解。对于刚刚接触程序设计的人员而言,遇到最大的问题是注释内容的多少、详细程度以及位置等。添加注释的一般原则是“够用即可”。p结构体注释是一种自定义数据类型的说明,说明结构体名称及成员。struct foo/*List of active foo*/struct foo*next;

    14、/*Comment for mumble*/struct mumble amumble;int bar;/*Bitfield;line up entries if desired*/unsigned int baz:1,fuz:5,zap:2;uint8_t flag;struct foo*foohead;/*Head of global foo list*/ANSI C编码规范:注释p全局变量或符号常量。#define _DOMAIN 1 /*argument domain error*/#define _SING 2 /*argument singularity*/#define _OVE

    15、RFLOW 3 /*overflow range error*/p 函数头:说明函数名称、功能、输入、输出、返回值。其中功能描述部分可以添加使用说明。例如:/*函数名:function*功 能:计算double型数据x的函数值*输 入:double x*输 出:无*返回值:x的函数值*/p 关键代码:关键代码主要说明关键语句的作用。do/*当fabs(x-x0)=1e-6时,反复迭代*/x0=x;fx=function(x0);/*计算函数值*/f=derivative(x);/*计算导数值*/x=x0-fx/f;/*计算新的x值*/while(fabs(x-x0)=1e-6);/*输出结果*

    16、/printf(The root is%f,x0);ANSI C编码规范:标识符命名规范 1)满足C语言的标识符名命名规则,即由数字、英文字母和下划线构成,以英文字母和下划线开头,长度不超过32个字符。2)标识符由表达标识符意思的单词构成。3)标识符应当简洁易懂。p 局部变量:变量一般采用小写字母开头,一般采用小写字母构成,可以使用下划线 命名规范包括变量命名、常量命名、函数命名、宏命名。标识符命名的基本原则是:int handle_error(int error_number)int error=OsErr();Time time_of_error;ErrorProcessor error_

    17、processor;p 全局变量:在有效范围内保证其唯一,一般在变量前加上g_用于区分局部变量和全局变量 Logger g_log;Logger*g_plog;ANSI C编码规范:标识符命名规范 p 函数:由于函数代表一种操作,因此,函数名一般由动词+名称构成,中间通过下划线分 p 宏命名:宏的名字一般由大写字母构成,可以使用下划线。例如下面的宏 int MPI_Waitall(int,MPI_Request*,MPI_Status*);int MPI_Testall(int,MPI_Request*,int*,MPI_Status*);int MPI_Waitsome(int,MPI_Re

    18、quest*,int*,int*,MPI_Status*);int MPI_Testsome(int,MPI_Request*,int*,int*,MPI_Status*);#define ASSERT(f)do if(!(f)&AfxAssertFailedLine(THIS_FILE,_LINE_)AfxDebugBreak();while(0)#define VERIFY(f)ASSERT(f)ANSI C编码规范:代码风格与排版 准则 说明实例 空格 合理使用空格和 Tab 键。int error=OsErr();Time time_of_error;ErrorProcessor er

    19、ror_processor;分行 一行尽可能只有一条语句。一行的长度最好不超过 80 个字符 do if(!(f)&AfxAssertFailedLine(THIS_FILE,_LINE_)AfxDebugBreak();while(0)#define VERIFY(f)ASSERT(f)代码的隐晦难懂不会影响程序执行效率,但会影响程序员的阅读、理解和修改。代码的风格和排版,正如一个人的笔迹,清晰明确自然让人赏心悦目,乱其八糟只能让人费解和厌恶 ANSI C编码规范:代码风格与排版ANSI C编码规范:代码风格与排版代码重用随着程序规模的扩大,首先面临的是开发任务的分解问题,在分解过程中,要求

    20、将实现系统分解为子系统、子系统分解为功能模块。在规划功能模块过程中要求重点功能模块的独立性和可重用性。独立性是指模块与其它模块的相关性很小,因此可以进行独立的开发与测试。可重用性是指代码可用于多个子系统,重点解决代码的重复利用问题,目的是减少开发成本 p源程序文件 p静态库 p动态链接库 p组件技术 代码重用技术代码重用:源代码将部分公用代码编制为函数,并将这些公共函数的函数定义存放于一扩展名为.c的源程序中,并编写函数的原型,保存在扩展名为.h的源程序。代码重用:源代码n 建立Win32 Console项目chp1_p1n 建立源程序函数:commfun.c和commfun.h主程序:chp

    21、1_ 编译、运行代码重用:静态库 可以采用基于静态库的方式,将函数以二进制代码方式封装。代码重用:静态库n 建立Win32 Static Library项目chp1_lib2建立源程序n函数:commfun.c和commfun.h编译、运行n 建立 Win32 Console Application项目chp1_p2建立源程序,来源与上一个工程ncommfun.hn主程序:chp1_p2.c编译、运行动态链接库 动态链接库(Dynamic Link Library,缩写为DLL)实现了动态加载函数库,即需要库内函数的时候,系统才将其加载到内存 动态链接库代码重用:动态库n 建立Win32 Dy

    22、namic-Link Library项目chp1_lib3建立源程序n函数:commfun.c和commfun.hn接口定义chp1_lib3.def编译、运行n 建立 Win32 Console Application项目chp1_p3建立源程序,来源与上一个工程ncommfun.hn主程序:chp1_p3.c编译、运行组件技术“一个软件组件是仅由契约性说明的接口和明确的上下文相关性组合而成的单元。一个软件组件可以被独立地部署“代码重用:ActiveX COM 组件n 建立ATL Com Wizard 项目chp1_lib4建立源程序n添加ATL对象Mathn编写函数实现编译、运行n 建立 Win32 Console Application项目chp1_p4建立源程序,来源与上一个工程n主程序:chp1_p4.c编译、运行作业一n 二分法求方程根要求按照编码规范编写0634223xxx作业二n 分别基于源代码、静态库、动态库和组件四种方式实现四则运算程序 输入:10*2输出:10*2=20课程网站参考n 中国科学技术大学超级运算中心 http:/ Intel多核技术大学合作网站http:/ 山东大学个体软件过程http:/

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:编码规范与代码重用课件.pptx
    链接地址:https://www.163wenku.com/p-5860144.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库