欢迎来到天天文库
浏览记录
ID:37193023
大小:743.60 KB
页数:27页
时间:2019-05-12
《嵌入式C编程01函数与结构化编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、函数与结构化编程课程安排程序结构化概念函数定义与使用函数参数与返回值程序模块化程序=数据(组合)+语句(组合)数据(组合):基本数据类型,组合数据类型语句(组合):表达式与语句,流程控制在main中开始语句控制流一直到main结束返回就足够了么?main写了上百甚至几百上千行,做了很多很多事!以后要维护、升级从哪里开始?一个公司由采购、研发、生产、工程、支持等部门组成,便于职能管理。程序也需要这样,按职能分割再组合到一起—结构化编程从回顾开始1、自顶向下:程序设计时,应先考虑总体,后考虑细节不要
2、一开始就追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化2、逐步求精:对复杂的问题,应设计一些子目标作过渡,逐步细化3、模块化:一个复杂问题,肯定是由若干个稍简单的问题构成模块化是把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块程序结构化设计原则构化程序设计方法引入了工程思想和结构化思想,使大型软件的开发和编程都得到极大的改善遵循结构化的程序的设计原则,按结构化程序设计方法设计出的程序具有明显的优点其一,程序易于理解、使用和维护其二,提高了编程工作
3、的效率,降低了软件开发的成本程序结构化设计优点其实你已经在进行程序结构化了(或许是被迫!)#include--引用库函数intmain(void){//从控制台获得输入信息//将输入信息原样输出return0;}我们调用C库函数实现–函数是程序结构化的基础如何进行程序结构化让结构化进行得更彻底点吧intmain(void){//所见即所得int_out();return0;}int_out()从哪里来?--需要自己实现的函数!如何进行程序结构化课程安排程序结构化概念函数定义与使
4、用函数参数与返回值程序模块化C入口函数:main主函数进入main函数之后,实用程序往往由N多个函数(库函数/自定义函数)组成,通过逐级函数调用,实现程序功能一个函数不宜过长(不要超过50行),函数使用原则:一个函数只做一件事(实现一个功能)C是函数式语言C程序结构函数的定义合法标识符函数返回值类型缺省为int型无返回值为void函数类型函数名(形参类型说明表){语句部分语句部分}函数体1、函数的命名GNU命名规范:小写字母,与”_”分隔单词2、返回值类型可以是基本类型、也可以是结构但不能直接返
5、回数组!3、函数原型声明先定义,再使用的原则也可以先声明,再使用,后定义4、实参和形参参数可以是任何类型!声明、定义时指定形参,使用时传入的为实参函数基本概念调用的方法是用实参代替形参:函数语句方式调用:add(10,20);函数表达式方式调用:sum=add(10,20);函数参数方式调用:printf(“sumis%d”,add(10,20));函数调用方式函数调用之前必须先定义或者声明函数声明方式:函数类型函数名(形参类型说明表);先声明/定义再调用最后调用的函数最先返回右边程序执行结
6、果是什么?函数执行过程课程安排程序结构化概念函数定义与使用函数参数与返回值程序模块化形式参数:定义函数时,函数名后面括号中的变量名形参必须指定类型实际参数:调用函数时,函数名后面括号中的表达式实参必须有确定的值形参与实参类型一致,个数相同若形参与实参类型不一致,自动按形参类型转换(隐式转换)形参与实参实参是怎么传递给形参的?将实参的值拷贝(赋值)给形参!调用结束,形参内存被释放,实参单元仍保留并维持原值参数传递过程无参函数intmain(void)基本类型作为函数参数add(inta,intb)
7、;数组作为函数参数:传递的是数组地址(用指针表示地址!)chardes[128]={0};charsrc[]={“xnf”};strcpy(des,src);组合结构类型作为函数参数:实参整个结构值拷贝给形参大结构拷贝造成函数调用效率低,通常做法是传递结构地址(用指针表示地址!)show_info(stu_info_tstu);指针作为函数参数:高效的传递方式,学习指针时再回来函数参数类型无返回类型函数(void函数)执行return;语句返回或者函数结束后自动返回有返回类型函数(非void函数
8、)执行return(表达式);或者return表达式;返回返回类型不一致会发生什么事?函数返回值基本类型作为函数返回类型intadd(inta,intb);不能把数组作为函数返回类型只能通过指针实现!组合结构类型作为函数返回类型通常通过指针实现!指针作为函数返回类型:学习指针时再回来函数返回类型课程安排程序结构化概念函数定义与使用函数参数与返回值程序模块化实际的程序不单只有main.c一个文件,而是可能由多个.c(源文件)和.h(头文件)组成这些文件是怎么得来的呢?这就涉及程序的模块化!一个大型
此文档下载收益归作者所有