The C++ Programming Language 学习笔记 第7章 函数

    1、关于内联函数(inline)

     借用一下书中的例子。

     

1 inline int fac(int n)
2 {
3      return (n<2) ? 1:n*fac(n-1);
4 }

 

     inline描述符给编译器一个提示,要求它试着把所有对fac()的调用在线化,也就是假如一个编译器够聪明的话,它会把对fac(6)生成常数720,然后直接代替代码中fac(6)的位置。不过这要视函数的复杂程度而言,假如递归复杂,或是有大量循环,或者代码复杂,或者并不依赖输入的内联函数(这个不知道为什么,书上有,先标记着),能否在线化就要看编译器的聪明程度了。有的编译器可能只能转化成6×fac(5),再傻一点的可能什么也干不了,

posted @ 2015-04-18 19:59  一个大叔  阅读(178)  评论(0编辑  收藏  举报