版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Q1:带参数的宏、内联函数、函数模板15121395张晓萱15121758辛翌菲15121470李喆雯15121856刘知昊什么是宏定义? 宏定义是C提供的三种预处理命令的其中一种,这三种预处理包括:宏定义、文件包含、条件编译。在编译之前进行的处理最基本的宏定义的格式: #define 标识符(宏名) 字符串在预处理时,将所有的宏名替换为对应的字符串#define PI 3.1415926把程序中出现的PI全部换成3.1415926宏定义是替换,不做计算,也不做表达式求解。带参数的宏定义#define 标识符(宏名) 字符串#define S(a,b) a*b除了一般的字符串替换,还要做参数代
2、换#include#define S(r) r*rint main()int area,a=1,b=3;area=S(a+b);printf(%d,area);return 0;#define S(r) r*rarea=S(a+b);第一步换为area=r*r;第二步被换为area=a+b*a+b;C+中的内联函数内联函数是指用inline关键字修饰的函数。在类内定义的函数被默认成内联函数。#include using namespace std;inline int sum(int a,int b)return a+b;int main()int c(3),d(4);coutsum(c,d)
3、endl;return 0;机制:内联函数在调用时,是将调用表达式用内联函数体来替换。目的:消除函数调用时的时间开销。所以,它通常用于频繁执行的函数。内联函数的缺点(使用时应注意)1.递归函数不能定义为内联函数。2.内联函数一般适合于不存在while和switch等复杂的结构且只有15条语句的小函数上,否则编译系统将该函数视为普通函数。3.内联函数只能先定义后使用,否则编译系统也会把它认为是普通函数。由于内联函数在编译阶段在调用的地方扩展,递归调用无法扩展,因为根本无法事先知道要扩展多少次。inline仅做为一种“请求”,特定的情况下,编译器将不理会inline关键字,而强制让函数成为普通函数
4、。出现这种情况,编译器会给出警告消息。C+函数模板函数模板可以用来创建一个通用的函数,以支持多种不同的形参。声明形式:template返回类型 函数名 (形参表) 函数体凡希望根据实参数据类型来确定数据类型的变量,都可以用数据类型参数标识符来说明,从而使这个变量可以适应不同的数据类型。编译系统遇到调用语句时,根据实际的参数的数据类型自动生成一个实际的函数模板函数。编译系统不编译函数模板,只编译模板函数。class函数模板能大大加快编码速度,但不会提高程序运行的速度。THANK YOUQ2:普通数组&动态数组什么是动态数组?int a10;int n=10;int an;在编译阶段,编译
5、器并不知道 n的值是多少int n=10;int *p=new intn;用new在堆空间上动态创建一个数组new 类型n 分配这种类型的n个大小的内存空间,并用默认构造函数来初始化这些变量。二维的情况如要定义一个动态的amnint *pm; for(int i=0;im;i+) pi=new intn; int *p= new int*m;推广到多维,也是这样自底向上地设计。容量极限的测试1(栈空间中的普通数组)int n=0;const int N = 1024;void func()char msgN;cout n+ t;func();char一般占1个字节(1Byte=8bit),这里一个msg1024即占了1024Byte=1KB测试结果:约1971KB容量极限的测试2(堆空间中的动态数组)int n=0;const int N = 1024;void func_heap()char *p = new charN;/ 只申请,不释放cout n+ t;func_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保障性住房国债可行性研究报告
- 玄武岩纤维新材料项目竣工验收报告
- 水电站发电机安装施工方案及技术措施
- 新型储能电气验收方案
- 钢筋混凝土设备基础工程裂缝控制专项方案
- 电气设备运行保证措施
- 管道保温外护套安装施工方案及技术措施
- 钢筋混凝土设备基础工程冬雨季施工专项方案
- 森林康养亲子研学基地打造项目可行性分析报告
- 正压浓相输送系统安装调试施工方案及技术措施
- 扫黑除恶村干部培训课件
- 2025年江苏辅警招聘考试真题含答案详解(基础题)
- 松脂采割包工合同范本
- 睡眠监测使用课件
- DB34T-地质公园建设项目地质遗迹及生态影响评估技术规范
- 园林机械维修培训课件
- 人教部编版四年级下册语文《必背课文、古诗、日积月累》默写填空
- 退役军人法治培训课件
- 学堂在线 人像摄影 章节测试答案
- 2024-2025学年广东省广州市天河区三年级(下)期末数学试卷
- 《尿石症的诊断和治疗(2025EAU指南)》解读
评论
0/150
提交评论