C++学习-内联函数

news/2024/5/20 0:47:53 标签: C++, c语言, 内联函数, inline

内联函数的作用">1、内联函数的作用

每一次函数调用都要把原来正在运行的函数的大量数据以及状态标志等压栈,所以每一次函数调用都要消耗栈空间,而频繁的调用小函数便会大量的消耗栈空间。于是c++中便特别地引入了inline修饰符,表示为内联函数

内联函数事实上是在调用程序中对被调用的内联函数进行展开,这样便避免了频繁调用函数对栈内存重复开辟所带来的消耗。

内联函数的具体实现方式">2、内联函数的具体实现方式

编译器将函数类型包括函数名、参数个数及其类型还有返回值类型保存在符号表中,当函数体的语法无误时将其实现也保存在符号表中,代码的形式取决于编译器。当遇到调用内联函数时,编译器会分析参数和返回值类型并可能做适当的强制转换,都没有问题时就会进行代码替换,并可能还有进一步的优化。

内联函数与宏展开的区别">3、内联函数与宏展开的区别

宏展开是单纯的代码替换,在预处理阶段完成,因为是简单的代码替换,所以很容易出现悲剧;inline函数虽然也是对函数进行展开,但是在编译阶段进行代码展开,参与类型检查,满足类型和作用域规则。

内联函数的局限">4、内联函数的局限

内联函数是编程者向编译器提出的一个申请,当内联函数的函数体过大时,编译器可以拒绝申请,这样内联函数的执行效率便和普通函数一样了,所以内联函数不能包含复杂的控制语句例如while、switch等,并且内联函数本身不能是直接递归函数。
  

内联函数应用">5、内联函数应用

对类中的私有成员进行赋值和访问等操作的函数常常声明为内联函数,因为这些函数往往函数体较小,但却经常被调用,使用内联函数可以大大提高程序效率。


http://www.niftyadmin.cn/n/1636810.html

相关文章

CentOS 6 网络设置

环境: 系统硬件:Virtual Box 系统版本:Centos-6.9-x86_64 步骤: 1.查看网络MAC地址 [rootcentos ~]# cat /etc/udev/rules.d/70-persistent-net.rules 显示如下信息: # PCI device 0x15ad:0x07b0 (vmxnet3) SUBSYSTEM"…

UVa 11729 Commando War 贪心

题目大意:有n个士兵,你要给他们没人分配一项任务,对于第i个士兵,你向他描述这个任务需要Bi时间,他完成这个任务需要Ji时间,你描述完了之后他可以独立去完成这个任务,但你一次只能给一个人描述任…

sql 语句区分大小写查询

SELECT PSB_QTY FROM [WPERSONALITYSHOPBAG] WHERE PSB_PERSONALITY_WORDSConvert(varchar(50), PSB_PERSONALITY_WORDS) COLLATE Chinese_PRC_CS_AS_WS 转载于:https://www.cnblogs.com/ziye/archive/2013/06/03/3114819.html

SSH安装和配置

SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。 传统的网络服务程序,如FTP、POP和Telnet其本质上都是不安全的;因为它们…

多厂商JRE环境下Java执行优先原则

假设一个操作系统上安装了6套不同厂商的JRE,每套JRE都被各自安装到不同的目录,不会互相影响。当在控制台执行java.exe,操作系统寻找JRE的方式如下: 1. 先找当前目录下有没有JRE 2. 再找父目录下有没有JRE 3. 接着在PATH路径中找JR…

VirtualBox中开启Linux的SSH(CentOS)

第一次干用SSH连接安装在VirtualBox上的Linux的事情,打算买个云空间用用的所以先拿个CentOS练练手。由于是虚拟机上的所以通过SSH连接的时候废了点小周折,特此记录一下。我选择的是CentOS6.4,主要包括以下及步骤: 1,切…

C++学习-存储类关键字

存储类关键字 1 说明 存储类关键字是名称声明语法的decl-specifier-seq的一部分。和名称的作用域一起,控制着名称的两个独立属性,自动存储期和链接属性。 auto 自动存储期。(C11之前适用)register 自动存储期。另外&#xff0c…

C++学习-构造函数、析构函数与虚函数的关系

文章主要探讨两个问题: (1)构造函数和析构函数能否是虚函数?(2)构造函数能否调用虚函数? 那么我们现在先来回答第一个问题: 1 构造函数和析构函数能否是虚函数? C&…