0
点赞
收藏
分享

微信扫一扫

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

干自闭 2022-02-27 阅读 96

目录

1、概念:

2、特性:

补充:

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



 

1、概念:

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

2、特性:

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

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

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

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

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

找不到。

补充:

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

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

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

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

举报

相关推荐

0 条评论