关内联函数键字inline
void myprintf(int a)
{
priintf("%d",a);
}
int main()
{
for(i=0;i<100;i++)
myprintf(3);
}

对于这个函数,在进行反复的打印3的过程中我们是不是要反复的调用myprintf(int a)这个函数,进函数和出函数是需要时间的,假设这个过程用时为4ms,而执行printf这个操作只需要2ms,那么在100次循环的过程中进出函数的时间比函数功能printf需要的时间还要长,这样很影响工作效率。于是,我们就想要如何去免去进出函数的过程呢?那么就可以声明inline这个关键字,有何用途?当我们声明了一个inline的函数时候,函数被调用的语句就被替换成了函数本身,进行了一个预处理

int main()
{
for(i=0;i<100;i++)
void myprintf(3)
{
printf("%d",3);
}
return 0;
}

这样一来我就非常明显的知道这个函数是干什么的了,就不需要去调用函数的定义部分,再通俗点讲,原来我要从家里去外面的商店去买冰淇淋(来回需要时间),现在商店就在我家里面了,那么我是不是省去了去商店的时间呢?但是相应的我这个家要很大(也就是所谓的空间要很大才能包含这个商店对吧?)这样就是用空间去换取了时间了。

内联函数在编译层面类似于宏替换。也就是说,程序执行过程中调用内联函数不需要入栈出栈,所以效率会提高。
#include<stdio.h>
inline int add(int x, int y)
{
return x+y;
}
int main()
{
int i,j,k;
printf("请输入两个整数的值:");
scanf("%d%d",&i,&j);
k=add(i,j);
printf("k=%d\n",k);
return 0;
}

C语言的内联函数的作用相关推荐

  1. C语言中内联函数的作用 inline

    C语言中内联函数的作用 inline C语言中内联函数到底有什么作用? 试想一下,每当我们在假设就在主函数中调用另外一个函数的时候,那么这个函数就要入栈或者出栈,比如说下面的一个例子: 点击(此处)折 ...

  2. VC++ inline内联函数的作用解决方案

    VC++ inline内联函数的作用解决方案 __attribute__((always_inline)) attribute((always_inline))的意思是强制内联,所有加了attribu ...

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

    //inline(内联)函数:将普通的函数定义为inline函数,可以避免普通函数入栈出栈的开销,它是将函数内的代码直接粘贴到调用处.除此之外,它和普通函数无异. //要成为inline函数必须具备以 ...

  4. 对普通函数、宏函数、内联函数的作用机制的探索

    这次我们来分析的是C/C++程序员经常遇到的问题,如何在普通函数.宏函数.内联函数之间做取舍,其实它们三者之间并没有什么绝对的你好我差的说法,只要掌握了三者的作用机制的话,结合实际情况一般都能做出正确 ...

  5. c语言什么是内联函数,C语言中内联函数inline的使用方法

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 来源一:比特网 来源二:东方锐智 在C++中,为了解决一些频繁调用的小涵数大量消耗栈空间或者是叫栈内存的问题,特别的引入了inline修饰符,表示为内联涵 ...

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

    学习导航 一.内联函数产生的意义 二.内联函数的使用 三.内联函数的作用 ①简单易懂 ②支持调试 ③支持类型检查 四.内联函数的特性 一.内联函数产生的意义  在C语言中,如果我们频繁调用某些函数,并 ...

  7. C++ 语言学习 day01 (linux ),基本输入输出错误输出函数,名字空间的含义,内联函数,缺省参数,引用 ,、new操作符

    1.介绍c++ C++头文件风格 c++ 老风格:以.h结尾 是c语言风格  stdio.h  (尽量不) c++的转换风格: 去掉.h 在文件名前加c 例如#include <cstdio&g ...

  8. Kotlin学习笔记 第三章 函数 高阶函数 lambda表达式 内联函数

    参考链接 Kotlin官方文档 https://kotlinlang.org/docs/home.html 中文网站 https://www.kotlincn.net/docs/reference/p ...

  9. C++编程进阶5(内联函数、如何降低编译成本、处理继承体系中同名不同参的成员函数、私有虚函数)

    十七.内联函数 在https://blog.csdn.net/Master_Cui/article/details/106391552中,已经简单的说过内联函数的作用. 函数体较小的内联函数经过编译后 ...

最新文章

  1. Linux、Windows进程间通信
  2. Java Serializable:明明就一个空的接口嘛
  3. 6月份Github上最热门的Java开源项目!
  4. nagios mysql入库_使用NDOUtils将Nagios监控信息存入Mysql
  5. WITH RECOMPILE和OPTION(RECOMPILE)区别
  6. 小学奥数 地球人口承载力估计
  7. router-link 绑定事件不生效
  8. 欧洲人“家里蹲”,差点把美国互联网搞“瘫痪”
  9. CH0805 防线 二分
  10. 大吉大利-今晚吃鸡-枪械
  11. 微信小程序(上传照片功能、统计字数功能)
  12. 对于自定义element 弹出框 文字提示样式
  13. 手把手教你怎么使用云服务器
  14. 首个高温红色预警来了,气象预警你了解多少?
  15. 骨传导耳机真的不伤耳吗、不入耳骨传导耳机推荐
  16. Spring Cloud Discovery——Consul Discovery
  17. vivado filemgmt 20-2001
  18. Prenetics拟赴美上市:预计2021年收入翻两倍,阿里、平安均为股东
  19. 12306 订票助手 免注册版
  20. java读取word页码_VBA代码读取word文档页脚

热门文章

  1. mysql h 127.0.0.1_MySQL 连接时尽量使用 127.0.0.1 而不是 localhost
  2. 用ajax进行部门的验证,ajax用$.post方式进行用户名校验
  3. mysql查询动态表名的数据类型_Mysql中查询某个数据库中所有表的字段信息
  4. Window10 64位,通过Python读取.mif, shp文件
  5. Leetcode 526.优美的排列 二进制状压DP
  6. Java控制层怎么调用适配器_java – 从适配器调用片段方法
  7. 二十岁出头的时候上,你一无所有,你拥有一切
  8. Hololens2-OpenXR开发(二)-实现通讯
  9. CUDA软件系统知识
  10. 一级指针和二级指以及(void**)在双链表中的应用