首页 > 知识点讲解
       函数
知识路径: > 嵌入式系统软件基础知识 > 嵌入式系统程序设计 > 嵌入式程序设计语言 > 嵌入式C/C++程序设计要求 > C程序设计基础 > 
被考次数:5次     被考频率:中频率     总体答错率:41%     知识难度系数:     
相关知识点:55个      
        在编写C程序时,一般都会把一个代码行数多的大程序分为若干个子程序,函数就是C程序中的子程序。因此,函数是一个功能模块,用来完成特定的任务。
        标准库函数是已经定义并随着编译系统发布的、可供用户调用的函数,例如printf、scanf等;用户自定义函数是根据需要来定义的函数。
               函数定义
               函数定义的一般形式如下:
               
               函数调用时有可能传递了错误参数,外界的强干扰可能将传递的参数修改掉,因此在执行函数主体前,需要先确定传进来的参数是否合法。
               函数调用
               函数调用的格式为:
               
               函数调用由函数名和函数调用运算符“(,)”组成,“(,)”内有0个或多个逗号分隔的参数(称为实参)。每个实参是一个变量或表达式,且实参的个数与类型要与被调用函数定义时的参数(称为形参)个数和类型匹配。当被调函数执行时,首先计算实参表达式,并将结果值传送给形参,然后执行函数体,返回值被传送到调用函数。如果函数调用后有返回值,函数调用可以用在表达式中,而无返回值的函数调用常常作为一个单独的语句使用。调用一个函数之前必须对被调用函数进行声明。
               C程序中的参数传递方式为值传递(地址也是一种值)。函数在被调用以前,形参变量并不占内存单元,当函数被调用时,才为形参变量分配存储单元,并将相应的实参变量的值复制到形参变量单元中。所以,被调用函数在执行过程修改形参变量的值并不影响实参变量的值。
               当数组作为函数参数时,调用函数中的实参数组只是传送该数组在内存中的首地址,即调用函数通知被调函数在内存中的什么地方找到该数组。数组参数并不指定数组元素的个数,除传送数组名外,调用函数还必须将数组的元素个数通知给被调用函数。所以,有数组参数的函数原型的一般形式为:
               
               函数参数的引用传递不同于值传递。值传递是把实参的值复制到形参,实参和形参占用不同的存储单元,形参若改变值,不会影响到实参。而引用传递本质上是将实参的地址传递给形参。以数组作为函数参数传递时,是引用传递方式,即把实参数组在内存中的首地址传给了形参,避免了复制每一个数组元素,从而可以节省内存空间和运行时间。在被调用函数中,如果改变了形参数组中元素的值,那么在调用函数中,实参数组对应元素的值也会发生相应的改变。
               函数声明
               如果一个函数调用另一个函数,在调用函数中必须对被调用函数进行声明。函数声明的一般形式如下:
               
               C程序中,函数原型用于声明函数,下面是函数声明的例子:
               
               可以将一些函数的声明集中放在头文件中,然后再用“#include”将头文件包含在程序文件中,也可以放在程序文件的开头,而把函数的定义放在程序文件后面的某个地方。C程序是从main函数开始执行的,而main函数在程序文件中的位置并没有特别的要求。
               递归函数
               递归函数是指函数直接调用自己或通过一系列调用语句间接调用自己,是一种描述问题和解决问题的常用方法。
               递归过程的特点是“先逐步深入,然后再逐步返回”,它有两个基本要素:边界条件和递归模式,边界条件确定递归何时终止,也称为递归出口;递归模式表示大问题是如何分解为小问题的,也称为递归体。
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有