首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >c++ 函数拓展:内联函数

c++ 函数拓展:内联函数

作者头像
青衫哥
发布2023-03-31 08:59:11
发布2023-03-31 08:59:11
6690
举报
文章被收录于专栏:C++打怪之路C++打怪之路

目录

1、概念:

2、特性:

补充:

原因:a、宏函数不支持调试 。b、宏函数语法复杂,容易出错。c、没有类型安全的检查


1、概念:

以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数压栈的开销, 内联函数提升程序运行的效率。

2、特性:

1. inline是一种以空间换时间的做法,省去调用函数额开销。所以代码很长或者有循环/递归的函数不适宜

使用作为内联函数。比特科技

2. inline对于编译器而言只是一个建议,编译器会自动优化,如果定义为inline的函数体内有循环/递归等

等,编译器优化时会忽略掉内联。

3. inline不建议声明和定义分离,分离会导致链接错误。因为inline被展开,就没有函数地址了,链接就会

找不到。

补充:

说到内联函数,很多人会联想到C语言中的宏函数,两者功能有些相似,但是为什么有些地方不建议使用宏函数呢?

原因:a、宏函数不支持调试 。b、宏函数语法复杂,容易出错。c、没有类型安全的检查

很多人想,既然这么好,为什么不全部用内联函数呢?

其实内联函数也有缺点,比如一百行代码的函数,在十个地方调用,普通方式是110行指令。而使用内联函数的话将会变成1000行。所以可执行程序就会变大,占用的空间就更多了,用户体验难免变差。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-02-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、概念:
  • 2、特性:
  • 补充:
    • 原因:a、宏函数不支持调试 。b、宏函数语法复杂,容易出错。c、没有类型安全的检查
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档