嵌入式C编程01函数与结构化编程培训讲学.ppt 立即下载
2024-12-03
约2.4千字
约27页
0
711KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

嵌入式C编程01函数与结构化编程培训讲学.ppt

嵌入式C编程01函数与结构化编程培训讲学.ppt

预览

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

10 金币

下载文档

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

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

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

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

函数与结构化编程课程安排程序=数据(组合)+语句(组合)
数据(组合):基本数据类型,组合数据类型
语句(组合):表达式与语句,流程控制

在main中开始语句控制流一直到main结束返回就足够了么?
main写了上百甚至几百上千行,做了很多很多事!以后要维护、升级从哪里开始?
一个公司由采购、研发、生产、工程、支持等部门组成,便于职能管理。
程序也需要这样,按职能分割再组合到一起—结构化编程
	

构化程序设计方法引入了工程思想和结构化思想,使大型软件的开发和编程都得到极大的改善

遵循结构化的程序的设计原则,按结构化程序设计方法设计出的程序具有明显的优点

其一,程序易于理解、使用和维护

其二,提高了编程工作的效率,降低了软件开发的成本
其实你已经在进行程序结构化了(或许是被迫!)
	#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(头文件)组成
	这些文件是怎么得来的呢?这就涉及程序的模块化!

一个大型程序往往按功能或者层次结构划分为多个模块
	例如一个手机软件程序:人机交互界面、通话功能、短信功能、日期时间、用户密码、通信录/通话记录保存、网络通信。。。
	那么多功能都塞在一个main.c中完成么?怎么做才方便维护与管理?
	这就要求模块化—每个子功能实现为一个模块(一个.c文件和一个对应.h文件)把程序划分为主模块和多个辅助功能模块
	主模块实现为main.c:在主函数中调用辅助功能模块中的接口函数,将子功能串联起来实现程序功能
	
	辅助模块实现为*.c和*
查看更多
王子****青蛙
实名认证
内容提供者
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

嵌入式C编程01函数与结构化编程培训讲学

文档大小:711KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用