首页 > 知识点讲解
       函数
知识路径: > 嵌入式系统软件基础知识 > 嵌入式系统程序设计 > 嵌入式程序设计语言 > 程序设计语言的基本成分 > 
被考次数:3次     被考频率:中频率     总体答错率:52%     知识难度系数:     
相关知识点:4个      
        函数是程序模块的主要成分,它是一段具有独立功能的程序。C程序由一个或多个函数组成,每个函数都有一个名字,其中有且仅有一个名字为main的函数,作为程序运行时的起点。函数的使用涉及三个概念:函数定义、函数声明和函数调用。
               函数定义
               函数的定义描述了函数做什么和怎么做,包括两部分:函数首部和函数体。函数定义的一般格式是:
               
               函数首部说明了函数返回值的数据类型、函数的名字和函数运行时所需的参数及类型。函数所实现的功能在函数体部分描述。如果函数没有返回值,则函数返回值的类型声明为void。函数名是一个标识符,函数名应具有一定的意义(反映函数的功能)。形式参数表列举了函数要求调用者提供的参数的个数、类型和顺序,是函数实现功能时所必需的。若形式参数表为空,可用void说明。
               C程序中所有函数的定义都是独立的。在一个函数的定义中不允许定义另外一个函数,也就是不允许函数的嵌套定义。有些语言(如PASCAL)允许在函数内部定义函数。
               函数声明
               函数应该先声明后调用。如果程序中对一个函数的调用在该函数的定义之前进行,则应该在调用前对被调用函数进行声明。函数原型用于声明函数。函数声明的一般形式为:
               
               使用函数原型的目的是告诉编译器传递给函数的参数个数、类型以及函数返回值的类型,参数表中仅需要依次列出函数定义时参数的类型。函数原型可以使编译器更彻底地检查源程序中对函数的调用是否正确。
               函数调用
               当在一个函数(称为调用函数)中需要使用另一个函数(称为被调用函数)实现的功能时,便以名字进行调用,称为函数调用。在使用一个函数时,只要知道如何调用即可,并不需要关心被调用函数的内部实现。因此,程序员需要知道被调函数的名字、返回值和需要向被调函数传递的参数(个数、类型、顺序)等信息。
               函数调用的一般形式为:
               
               在C程序的执行过程中,通过函数调用使得被调用函数得以执行。函数体中若调用自己,则称为递归调用。
               C语言采用传值方式将实参传递给形参。调用函数和被调用函数之间交换信息的方法主要有两种:一种是由被调用函数把返回值返回给调用函数,另一种是通过参数带回信息。函数调用时,实参与形参间交换信息的主要有传值调用和引用调用两种方法。
               (1)传值调用(Call by value)。若实现函数调用时实参向形参传递相应类型的值,则称为是传值调用。这种方式下形参不能向实参传递信息。
               例如,下面给出函数swap定义,其功能是交换两个整型变量值。
               
               函数调用为:swap(a,b);
               因为是传值调用,swap函数运行后只能交换x和y的值,而实参a和b的值并没有交换。
               在C语言中,要实现被调用函数对实参的修改,必须用指针作形参,调用时需要先对实参进行取地址运算,然后将实参的地址传递给指针形参。本质上仍属于传值调用。
               下面给出函数swap的定义,其功能是交换两个整型变量值。
               
               函数调用为:swap(&a,&b);
               由于形参px、py分别得到了实参变量a、b的地址,所以px指向的对象*px即为a,py指向的对象*py就是b,因此在函数中交换*px和*py的值实际上就是交换实参a和b的值,从而实现了调用函数中两个整型变量值的交换。这种方式是通过数据的间接访问来完成运算要求的。
               (2)引用调用。引用是C++中增加的数据类型,当形参为引用类型时,函数中对形参的访问和修改实际上就是针对相应实参所作的访问和改变。例如:
               
               函数调用为:swap(a,b);
               引用调用方式下调用swap(a,b)时,x、y就是a、b的别名,因此,函数调用完成后,交换了实参a和b的值。
 
本知识点历年真题:
隶属试卷 题号/题型 题干 难度系数/错误率
   2016年下半年
   嵌入式系统设计..
   上午试卷 综合知识
第61题
选择题
一个C语言程序的执行是从(61)。

37%
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

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


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

客服

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

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


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