c语言中inline函数的作用

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

记录一下inline函数的作用

普通函数的调用过程

在eclipse里面创建工程,代码如下:

#include <iostream>
#include <vector>
#include <cstring>
#include <cassert>
#include <algorithm>
using namespace std;

//__attribute__((always_inline)) inline int test(int x)
int test(int x)
{
   
   
	return x++;
}

int main()
{
   
   
	int i = 0;
	int y = 0;

	for (i = 0; i < 9; i++)
		y = test(i);

}

上述例子,test为普通函数,单步执行时的汇编代码如下所示:

                  main():
0000000000401550:   push    %rbp
0000000000401551:   mov     %rsp,%rbp
0000000000401554:   sub     $0x30,%rsp
0000000000401558:   callq   0x4016d0 <__main>
24                	int i = 0;
000000000040155d:   movl    $0x0,-0x4(%rbp)
25                	int y = 0
inline函数的特性 一.inline作用(内联函数) 我们使用关键字inline函数定义一起就可以创建一个内联函数,它的作用就是减少函数调用的开销,假如我们的程序中有一个函数会频繁的被调用,这样使程序的运行速度十分缓慢,那么我们使用内联函数,就可以解决这种问题,提高程序的运行效率. 内联函数的定义: inline void add(int a, int b){ return a+b; } 上面这个就是一个内联函数,假如我们的程序中频繁使用add操作时,将其声明为内联函数就可以减少调用开销提高效率. 注意 阅读详情

相关推荐

inline作用

1、引入 inline 关键字的原因 在 c/c++ 中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了 inline 修饰符,表示为内联函数inline 只适合涵数体内代码简单的涵数使用,不能包含复杂的结构控制语句例如 while、switch,并且不能内联函数本身不能是直接递归函数(即,自己内部还调用自己的函数)。 #include <stdio.h> inline const char *num_check(int v) { return (v

天之彼方的博客 1万+

【内联函数inline关键字的作用与内联函数的特性

详解内联函数的意义与特性

罅隙的博客 3774

c语言inline有什么作用,C语言inline关键字

一、inline关键字的概念inline关键字是C99标准的型关键字,其作用是将函数展开,吧函数的代码复制到每一个调用处。这样调用函数的过程就可以直接执行函数代码,而不发生跳转、压栈等一般性函数操作。可以节省时间,也会提高程序的执行速度。 二、inline关键字实例在编写程序过程中,对于短小而且需要频繁调用的函数,可以将其声明为inline()函数。在调用该函数的过程中编译器会自动选择是否展开该函...

weixin_30709043的博客 9411

inline 作用及使用方法, inline 函数工作原理,宏定义(define)和内联函数inline)的区别

define。

weixin_47151388的博客 2658

C语言中内联函数作用 inline

C语言中内联函数到底有什么作用? 试想一下,每当我们在假设就在主函数中调用另外一个函数的时候,那么这个函数就要入栈或者出栈,比如说下面的一个例子:   点击(此处)折叠或打开 Void myprint() { Printf("%d",3); } Void main() {

如丧 1万+

C语言中内联函数作用 inline

C语言中内联函数作用 inlineC语言中内联函数到底有什么作用?试想一下,每当我们在假设就在主函数中调用另外一个函数的时候,那么这个函数就要入栈或者出栈,比如说下面的一个例子: 点击(此处)折叠或打开Void myprint(){Printf("%d",3);}Void main(){Int i;For(i=0;i&lt;100;i++)Myprint(2);} 在主函数中调用myprin()...

jacke121的专栏 2640

C语言中__inline函数作用解释

C语言inline函数的使用方法2012-01-20 00:00 中国IT实验室 佚名 ..关键字:C语言   大学在教科书上学习过inline函数,定义为inline函数之后,会省去函数调用的开销,直接嵌套汇编代码,取代函数调用,提高效率。工作后项目中也很少用到inline来定义函数,近几天在研读google的google c++ style guide,发现之前自己对inline函数的认识太过

macrohasdefined的专栏 2120

c语言inline不起作用,C语言inline内联函数学习小结

//inline(内联)函数:将普通的函数定义为inline函数,可以避免普通函数入栈出栈的开销,它是将函数内的代码直接粘贴到调用处。除此之外,它和普通函数无异。//要成为inline函数必须具备以下几点://1、函数代码很短,通过不超过10行//2、函数内不能出现循环、递归、switch...case//3、需要在编译的时候开启优化选项-O//否则加上inline修饰,编译器也会视而不见//强制...

weixin_36217616的博客 1349

inline在c语言作用,[转载]C语言标准C99 内联函数(inline)总结

-------------------------------------------------------1:定义:它们看起来象函数,运作起来象函数,比宏(macro)要好得多,使用时还不需要承担函数调用的开销。当内联一个函数时,编译器可以对函数体执行特定环境下的优化工作。这样的优化对"正常"的函数调用是不可能的。2:规则:inline关键字必须和函数体定义放在一起才可以实现内联,仅仅将i...

weixin_33400830的博客 612

c语言里面inline作用,C语言中内联函数inline的使用方法

该楼层疑似违规已被系统折叠隐藏此楼查看此楼来源一:比特网 来源二:东方锐智在C++中,为了解决一些频繁调用的小涵数大量消耗栈空间或者是叫栈内存的问题,特别的引入了inline修饰符,表示为内联涵数。可能说到这里,很多人还不明白什么是栈空间,其实栈空间就是指放置程序的局部数据也就是函数内数据的内存空间,在系统下,栈空间是有限的,如果频繁大量的使用就会造成因栈空间不足所造成的程序出错的问题,...

weixin_33634121的博客 716

inline在C语言中是什么作用意思,C语言中内联函数inline的使用方法

该楼层疑似违规已被系统折叠隐藏此楼查看此楼来源一:比特网 来源二:东方锐智在C++中,为了解决一些频繁调用的小涵数大量消耗栈空间或者是叫栈内存的问题,特别的引入了inline修饰符,表示为内联涵数。可能说到这里,很多人还不明白什么是栈空间,其实栈空间就是指放置程序的局部数据也就是函数内数据的内存空间,在系统下,栈空间是有限的,如果频繁大量的使用就会造成因栈空间不足所造成的程序出错的问题,...

weixin_39563132的博客 917

c语言里面inline作用,C语言内联函数(inline),普通函数,和函数式宏定义的区别,与使用场景...

前几天,有粉丝(@学无止境攻城狮)在我的一篇介绍C语言宏定义的文章的评论区回复说:希望写一个关于内联函数和普通函数的区别,内联函数和宏函数的区别。@学无止境攻城狮 提到,对C语言中的内联函数、普通函数以及函数式宏定义的适用场景不够了解,也就是说在C语言程序开发中,“不清楚什么时候用函数式宏定义好,还是用内联函数,或者普通函数好”。可能读者也有这样的疑惑,所以本文讨论这几种“函数”的区别,在了解区别...

weixin_32390279的博客 655

【内联函数】C语言inline内联函数作用

编译器完成的,在调用处将函数展开,减少了调用函数时进栈和出栈,坏处是会增加代码段的大小(缺点:增加了编译后的二进制文件的大小),为了提高运行的速度,对于一些程序代码小,运行时间短但利用次数比较多的函数我们就定义为inline,对于短小的函数,可以省去CALL保存现场等操作,提高程序运行速度。 原文: http://bl...

小鱼菜鸟的博客 108

【C++11】inline与namespace使用|C语言inline内联函数作用

目录 内联命名空间 内联空间应用场景 内联命名空间还有以下特点 内联命名空间 C++11中引入了内联命名空间(inline namespace),它的特点就是不需要使用using语句就可以直接在外层命名空间使用该命名空间内部的内容,而且无需使用命名空间前缀。 用途:默认放出新版接口,保留旧版的接口。 先看代码: all::fun(1); #V2017版的inline了,所以外层不加空间前缀调用的就是V2017的 all::V2018::fun(1); #调用其他版

我的笔记本 1079

c语言中运用free函数时debug出错、_C语言跟C++的区别

C语言虽说经常和C++在一起被大家提起,但可千万不要以为它们是一个东西。现在我们常用的C语言是C89标准,C++是C++99标准的。C89就是在1989年制定的标准,如今最新的是C11和C++11标准。根据不同的标准,它们的功能也会有所不同,但是越新的版本支持的编译器越少,所以本文在讨论的时候使用的C语言标准是C89,C++标准是C++99.我们来介绍C语言和C++中那些不同的地...

weixin_39617497的博客 212

只看 inline 关键字,如何准确判别代码属于 C 还是 C++ 语义?

绝大多数inline基础工具模块用于字节序转换、位操作等底层辅助函数(如、位设置/清除/测试等)。其中有几处采用了的组合写法。数据持久层哈希模块用于哈希计算的核心辅助函数(如get_code数据实体字段模块包含了一组的重载模板函数。第三方 XML 解析库属于第三方开源库自带的内联辅助函数。服务端核心业务用于业务逻辑中的数据拷贝辅助函数(如数据库驱动底层模板库) ——占绝大多数该文件引入了数据库模板库,包含大量的inline工具函数以及operator<operator>>的重载。

jimy1的博客 379

c语言inline函数的使用

大学在教科书上学习过inline函数,定义为inline函数之后,会省去函数调用的开销,直接嵌套汇编代码,取代函数调用,提高效率。工作后项目中也 很少用到inline来定义函数,近几天在研读google的google c++ style guide,发现之前自己对inline函数的认识太过肤浅了,这里学习总结一下。   1、inline函数不要超过10行代码,且不能包含循环、switch、if语句   2、在一个c文件中定义的inline函数是不能在其它c文件中直接使用,google推荐把inline

rich369的博客 2231

内联函数-C中关键字inline用法解析

目录 内联函数-C中关键字inline用法解析 内联函数-C中关键字inline用法解析 一、什么是内联函数 ​ 在C语言中,如果一些函数被频繁调用,不断地有函数入栈,即函数栈,会造成栈空间或栈内存的大量消耗。 ​ 为了解决这个问题,特别的引入...

测试 1万+
上一篇: Linux i2c 学习 -4 i2c 应用程序接口
sLeonard
博客等级 码龄14年 0粉丝 6原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值