函数定义和调用的格式.ppt

上传人:xt****7 文档编号:5330274 上传时间:2020-01-26 格式:PPT 页数:15 大小:248.31KB
返回 下载 相关 举报
函数定义和调用的格式.ppt_第1页
第1页 / 共15页
函数定义和调用的格式.ppt_第2页
第2页 / 共15页
函数定义和调用的格式.ppt_第3页
第3页 / 共15页
点击查看更多>>
资源描述
第五章C 函数 函数定义和调用的格式函数原形和头文件的作用参数传递机制 函数重载函数和变量的作用域函数模板的设计方法 函数的定义 函数调用 函数原形与头文件 多文件应用系统 第一个文件 描述函数的头文件第二个文件 定义函数的程序文件第三个文件 调用函数的主程序文件 参数传递 可选参数 在说明一个函数时 可以为形式参数表中的最后若干个参数设定默认值 从而把这些参数设定为可选参数在调用这个函数时 如果没有给出对应于可选参数的实参 系统就自动以设定的默认值作为实参传递给这个函数在调用具有可选参数的函数时 被省略的只能是最后的连续的若干个可选参数 即不能间隔省略 可选参数的说明格式如下 类型修饰符变量名 默认值 常量表达式 可选参数应该在函数原形中说明 内联函数 内联函数 在一般函数定义前面加上保留字inline 该函数即被说明为内联函数 例 inlineintadd2 intn returnn 2 内联展开 程序执行时 C 有可能直接调用函数体代码来替代对函数的调用函数说明 内联函数的说明也应放置在头文件中 函数重载与名字混成 函数重载 允许定义同名的函数 但重载的函数必须在参数的数量上或类型上与其他同名函数有所不同重载函数的调用 如果调用时所用的参数与所定义的各种情况均不相同 则编译系统会选择与其兼容的最相似的那个函数 并完成必要的类型转换 如果找不到兼容的函数 则产生编译错误名字混成 编译系统在处理重载函数时会形成不同的内部名称 这种方法称为名字混成在重载函数时必须保证在逐个去掉可选参数后 仍然在参数个数上或类型上与同名函数有所不同 函数的作用域 全局作用域 不但在定义函数的文件中可以调用 而且在同一应用系统的其他程序文件中也可调用文件作用域 说明为static的函数只能被同一文件中的函数调用 例 staticlongadd longa longb returna b 全局变量 全局变量 定义于函数外部的变量称为全局变量静态生存期 全局变量在应用程序运行的整个期间都有效 如果在定义时未初始化 则自动初始化为0文件作用域 全局变量定义时使用static修饰 则只允许同一文件中的函数访问该变量跨文件作用域 全局变量定义时未使用static修饰 则还允许同一系统的其他程序文件中的函数访问该变量外部说明 externinta应用场合 跨文件作用域的全局变量被其他程序文件中的函数访问 变量的声明在函数声明之后 称之为 变量的原形 局部变量 局部变量 定义于函数内部的变量块作用域 局部变量只允许定义该变量的块中的语句访问 块 一般指复合语句 复合语句中位于变量定义之前的语句也不能访问该变量局部变量的存储类型 自动变量 其生存期从变量定义开始 到所在块运行结束时为止 用auto修饰或省略之 寄存器变量 也是自动变量的一种 但它是存储于寄存器中的 只有适合于单个寄存器存放的变量才可声明为寄存器变量 用register修饰 静态变量 用static修饰的局部变量具有静态生存期 存在于应用程序的整个运行期间 函数模板 一 函数模板 一系列相关函数的模型或样板 这些函数的原代码除了因所针对的数据类型不同而有所差异外 其基本结构相同 定义格式 template函数定义例 template T被称之为虚拟类型TMax Tx Ty return x y x y 函数模板的实例化 编译系统根据每次调用的实在参数的情况生成适当的调用代码 并生成相应版本的函数定义 例 couty x y 函数模板 二 函数模板的强制实例化 在函数调用格式中插入模板的实参表 例 cout 3 5 0 将生成如下实例 intMax intx inty return x y x y 5 0为double型 强制转换为int型若与模板的某个实例原形相同的函数定义已经存在 则函数定义优先函数模板的形参表中可以有多个参数 例 templateT1Max T1x T2y returnx T1 y x T1 y 只要可以比较大小 可以实现类型转换 函数模板 三 模板函数 利用函数模板实现的函数 函数模板要放置于头文件中常规参数 在函数模板中使用一般的类型修饰符说明的参数 调用具有常规参数的模板函数必须强制实例化
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!