代码编织梦想

简介

inline放在函数返回类型前修饰函数,被修饰的函数就叫做内联函数。

static inline void function(void)

在C语言中,函数调用时保存现场,函数中变量的使用等都会占用栈空间。而且进入函数前的保存现场,跟函数调用结束后的恢复现场都需要时间花销。

当函数的调用代价大于直接将代码拷贝到运行程序中时,我们就会使用inline关键字建议编译器将函数直接拷贝到函数调用中直接运行来换取函数的调用。(例如:经常需要调用某简短的函数时)

(注意:inline是向编译器提建议,不是命令编译器,所以加inline修饰的函数是否变成内联函数,这由编译器做决定!!)

使用方法

inline的使用方法其实是固定的,它定义在头文件中,并用static修饰。

//inline.h
#include <stdio.h>

void func1(void);

static inline void ile(void)
{
	printf("I'm inline function!\r\n");
}

在使用此内敛函数的文件中包含此头文件即可。

//main.c
#include "inline.h"

int main (int argc, char **argv)
{
	func1();
	ile();
	return 0;
} 

奇怪了,在C程序中,函数的定义不是放在.c文件中的吗?为啥你的inline函数要放在.h文件中呢?

这就从inline的原理上说起,inline是将调用处的函数名直接由函数体的拷贝替换掉。

编译的时候我们就要知道函数体在哪,所以必须要将它的定义放在头文件中,然后包含到调用的文件中。

还有重要一点就是,要加static修饰,因为是简单的拷贝,如果不加的话,编译时就会报错说你重复定义函数。

经查看编译后的.o文件中可以看到函数体被拷贝到了调用inline函数的文件中。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46259846/article/details/125495262

c语言关键字inline-爱代码爱编程

C语言关键字Inline Inline :提高了运行速度,但是会增加代码量(省去了调用函数的开销,但是包含的函数的代码量会增多) 1. inline 定义的类的内联函数,函数的代码被放入符号表中,在使用时直接进行替换,

c语言关键字浅析-inline_johan_joe_king的博客-爱代码爱编程

### C语言关键字浅析系列 ### ### ISO/ANSI C 关键字 ### inline关键字是C99标准新增的,是在某些方面比较实用的一个关键字 inline常出现在定义内联函数的地方,这也是它最重要的使命   inline的作用是: 定义内联函数。   1、何为内联函数? 内联函数的提出与C语言本身的一些特质有关,众所周知,C

c语言拾遗-c语言关键字_lxtqyh的博客-爱代码爱编程

摘要:ANSI C标准C语言共有32个关键字。在C99标准中,新增了inline,restrict,_Bool,_Complex,_Imaginary五个关键字,在C11标准中,新增了_Alignas,_Alignof,_Atomic,_Static_assert,_Noreturn,_Thread_local,_Generic七个关键字。 C89标准关

c语言 在txt文件中搜索关键词_C语言关键字大全-爱代码爱编程

关键字 关键字又称为保留字,就是已被C语言本身使用,不能作其它用途使用的字。例如关键字不能用作变量名、函数名等标识符 由ISO标准定义的C语言关键字共32个: auto double int struct break else long switch case enum register typedef char extern return u

C语言-inline关键字-爱代码爱编程

By: Ailson Jack Date: 2021.03.14 个人博客:http://www.only2fire.com/ 本文在我博客的地址是:http://www.only2fire.com/archives/131.html,排版更好,便于学习,也可以去我博客逛逛,兴许有你想要的内容呢。 1.基本概念 C语言中的inline关键字是C99标准

C语言关键字你知道几个?-爱代码爱编程

C语言关键字大全 关键字的基本概念: 被c语言赋予了特殊的含义的单词 关键字特征:全部都是小写 注意:关键字不能用做变量名 ANSI C标准C语言共有32个关键字: 数据类型关键字(12个) char,short,int,long,float,double,unsigned,signed,struct,union,enum,void 控制语句关键字

C语言之初识关键字-爱代码爱编程

目录 1.关键字的类型 2.sizeof 关键字 3.typedef 关键字 4.extern 关键字 5.static 关键字 6.const 关键字 1. 关键字的类型 1.1 C 语言关键字共有23个,根据关键字的作用,可分为数据类型关键字,控制语句关键字。 1.2 数据类型关键字:      void、char、short、int、long

c语言inline有什么作用,C语言inline关键字-爱代码爱编程

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

c语言 关键字符,c语言关键字有哪些 c语言关键字解释-爱代码爱编程

很多同学想知道c语言关键字有哪些,下面是小编整理的相关内容,希望对大家有所帮助! c语言关键字有哪些 auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、si

C语言static 关键字总结,c语言关键字用法,static、const、inline、volatile个人小结。...-爱代码爱编程

1.static (1)用于全局变量:外部静态变量,只能在本源文件中被引用,不能被其它源文件所引用。 (2)用于局部变量:局部静态变量,在函数返回后存储单元不释放;下一次调用该函数时,该变量为上次函数返回时的值。 (3)用于函数:内部函数,只能被本源文件中的函数所调用,不能被其它源文件调用。 Static全局变量与普通的全局变量有什么区别:

c语言的37个关键字,c语言的37个关键字都是什么-爱代码爱编程

满意答案 qekcs 2017.08.17 采纳率:52%    等级:9 已帮助:964人 关键字就是已被C语言本身使用,不能作其它用途使用的字。例如关键字不能用作变量名、函数名等 由ANSI标准定义的C语言关键字共32个: auto double int struct break else long switch case

c语言关键字error怎么用,C语言关键字 inline 讲解?一定要防止踩到这几个屎坑!...-爱代码爱编程

原标题:C语言关键字 inline 讲解?一定要防止踩到这几个屎坑! C语言指针蒙圈?我们逆向把它按在地上摩擦! 我们回顾下一个知识点,调用函数的时候,有个不可避免的成本,就是会需要保存函数用到的寄存器,弹出来后要恢复。 这个是什么原因呢?因为在CPU这里,只有一组寄存器,而大多数时候,都是要复用起来,所以进入一个函数,会用到的寄存器,就需要保存

c语言中关键字的分类,C语言关键字分类整理-爱代码爱编程

C语言总览: 强类型,面向过程 简洁、灵活:32个关键字(C99标准新增5个,C11新增7个),9种控制语句,34种运算符 数据类型丰富,运算符丰富 结构化(控制语句)、模块化(函数) 灵魂、特色:指针 高级语言中的低级语言:直接访问物理地址,进行位运算,直接操作硬件 32个关键字: 数据类型13个:void  signed unsig