嵌入式C编程 01_函数与结构化编程1.ppt
上传人:sy****28 上传时间:2024-09-15 格式:PPT 页数:28 大小:2.4MB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

嵌入式C编程 01_函数与结构化编程1.ppt

嵌入式C编程01_函数与结构化编程1.ppt

预览

免费试读已结束,剩余 18 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

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