




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 营养障碍性疾病诊疗与护理考核试题及答案
- 油漆工安全操作规程
- 英语阅读训练调查及分析
- 优化有限空间作业的专项计划
- 智能交通行业中小企业劳动合同规范
- 电子商务平台保证金合同
- 草牧场承包权流转与农业现代化实施合同
- 出租自住合并方案
- 高速公路草料运输通行费优惠政策合同
- 消系统施工方案
- 2024年江苏富轩实业有限公司招聘笔试冲刺题(带答案解析)
- 螺旋测微器读数练习(含答案)-文档
- 热射病患者的护理个案
- 童车产品设计理念
- JBT 1472-2023 泵用机械密封 (正式版)
- 物理 八年级上校本作业
- 角膜板层裂伤查房
- 小学四年级道德与法治期末考试质量分析
- 呼吸科利用PDCA循环提高肺功能检查结果达标率品管圈QCC成果汇报
- 钳工实操试卷-共44套
- 岭南版八年级下册美术 6色彩的表现 课件
评论
0/150
提交评论