c++内置函数---7
原创博客:转载请标明出处:http://www.cnblogs.com/zxouxuewei/
内置函数
调用函数时需要一定的时间和空间的开销。一般,函数调用包括5部分:
1、程序先执行函 数调用之前的语句;
2、流程的控制转移到被调用函数的入口处,同时进行参数传递;
3、执行被调用函数中函数体的语句;
4、流程返回调用函数的下一条指令 处,将函数返回值带回;
5、接着执行主调函数中未执行的语句。这就要求在转到被调用函数之前,要记下当时执行的指令地址,还要保护“现场”,以便在函数调 用之后继续执行。在函数调用之后继续执行。在函数调用之后,流程继续返回到先前记下的地址处,并且根据记下的信息“回复现场”,然后继续执行。这些都需要 话费一定的时间,如果有的函数需要频繁使用,则所用时间会很长,从而降低了程序执行的效率。
C++中提供了一种高效率的方法,即在编译时将所调用函数的代 码嵌入到主调函数中,而不是将流程流转出去。这种函数成为内置函数,又称内联函数。指定内敛函,只需要在函数的首行左部添加一个关键字inline即可。
#include <iostream>
using namespace std;
inline int max(int,int, int); //声明函数,注意左端有 inline
int main()
{
int i=,j=,k=,m;
m=max(i,j,k);
cout<<″max=″<<m<<endl;
return ;
}
inline int max(int a,int b,int c) //定义max 为内置函数
{
if(b>a) a=b;//求 a,b,c中的最大者
if(c>a) a=c;
return a;
}
使用内敛函数可以节省运行时间,但是却增加了目标程序的长度。因此一般只将规模很小(一般为5个语句以下)而是用频繁的函数声明为内联函数。内联函数中不能包括复杂的控制语句,如循环语句和switch语句。
class Student
{
public :
void display( )
{
cout<<″num:″<<num<<endl;cout<<″name:″
<<name<<endl;cout<<″sex:″<<sex<<endl;}
private :
int num;
string name;
char sex;
};
c++内置函数---7的更多相关文章
- Entity Framework 6 Recipes 2nd Edition(11-12)译 -> 定义内置函数
11-12. 定义内置函数 问题 想要定义一个在eSQL 和LINQ 查询里使用的内置函数. 解决方案 我们要在数据库中使用IsNull 函数,但是EF没有为eSQL 或LINQ发布这个函数. 假设我 ...
- Oracle内置函数:时间函数,转换函数,字符串函数,数值函数,替换函数
dual单行单列的隐藏表,看不见 但是可以用,经常用来调内置函数.不用新建表 时间函数 sysdate 系统当前时间 add_months 作用:对日期的月份进行加减 写法:add_months(日期 ...
- python内置函数
python内置函数 官方文档:点击 在这里我只列举一些常见的内置函数用法 1.abs()[求数字的绝对值] >>> abs(-13) 13 2.all() 判断所有集合元素都为真的 ...
- DAY5 python内置函数+验证码实例
内置函数 用验证码作为实例 字符串和字节的转换 字符串到字节 字节到字符串
- python之常用内置函数
python内置函数,可以通过python的帮助文档 Build-in Functions,在终端交互下可以通过命令查看 >>> dir("__builtins__&quo ...
- freemarker内置函数和用法
原文链接:http://www.iteye.com/topic/908500 在我们应用Freemarker 过程中,经常会操作例如字符串,数字,集合等,却不清楚Freemrker 有没有类似于Jav ...
- set、def、lambda、内置函数、文件操作
set : 无序,不重复,可以嵌套 .add (添加元素) .update(接收可迭代对象)---等于批量 添加 .diffrents()两个集合不同差 .sysmmetric difference( ...
- SQL Server 内置函数、临时对象、流程控制
SQL Server 内置函数 日期时间函数 --返回当前系统日期时间 select getdate() as [datetime],sysdatetime() as [datetime2] getd ...
- Python-Day3知识点——深浅拷贝、函数基本定义、内置函数
一.深浅拷贝 import copy #浅拷贝 n1={'k1':'wu','k2':123,'k3':['carl',852]} n2=n1 n3=copy.copy(n1) print(id(n1 ...
- 性能测试总结工作总结-基于WebService协议脚本 内置函数手动编写
LoadRunner基于WebService协议脚本 WebService协议脚本有三种生成方式,一种是直接通过LoadRunner导入URL自动解析生成:一种是使用LoadRunner内置函数手动编 ...
随机推荐
- mysql一次添加多条记录
inisert into tabale (name,pwd) values ("jom","123"),("tom","123&q ...
- 实现IOS圆角风格的列表ListView
这段代码目前已经加在我的一个jar包androidkit中,还没发布. 适用于android1.6以上,不依赖其他jar包 使用时不需要继承这里的RoundListAdapter.只需要在你实现了Li ...
- Ajax方法实现登录页面
Note: ajax技术 不用刷新页面,做局部刷新不用form表单,因为不需要提交,通过JQuery控制必须要有id如果要用ajax可以用JQuery也可以用js写,推荐JQuery 因为简单,直接引 ...
- 《使用this作为返回值的相关问题》
//使用this作为返回值的相关问题: /* 如果在某个方法中把this作为返回值,则可以多次连续的调用同一个方法,从而使得代码 更加简洁,但是,这种把this作为返回值的方法可能造成实际意义的模糊, ...
- alpha,hidden,opaque的一些认识
如果opaque设置为YES,那么视图会被当做全视图来对待,系统会重绘整个视图 如果opaque设置为NO,那么系统会减少开销,以其中的内容来判定重绘的视图 如果把视图的背景色设置为透明那个,那么op ...
- ERP反馈信息管理(十九)
前台显示的界面: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Custo ...
- Android的切图标准
最近总是有人在问我,Android怎么切图啊,怎么适配啊,不只是Android同行,还有很多新手ui设计师. 于是我就写篇文章,根据我们平时的开发经验,简单的介绍一下吧. 如果UI设计师以1920*1 ...
- Redirect HTTP to HTTPS on Tomcat
I have bought my SSL secure certificate and successfully installed on Tomcat with the keytool but ho ...
- 浅谈对CSS的认识
自从进公司也有2个多月了,相信和我一批进来的小伙伴们都收获了很多东西,这个是在学校所学不到的,也让成长了很多.作为新人的我,从认为CSS是个很简单的东西,到现在觉得CSS中水很深,感觉学了很多的CSS ...
- 让所有浏览器包括IE6即支持最大宽度又支持最小宽度。
让所有浏览器包括IE6即支持最大宽度又支持最小宽度. _height _width:针对ie6 css hack .yangshi{max-width:620px;min-width:1px;_wi ...