8.1 C++内联函数
常规函数和内联函数之间的主要区别在于C++编译器如何将它 们组合到程序中
- 内联函数的编译代码与其他程序 代码“内联”起来了。也就是说,编译器将使用相应的函数代码替换函数调用,程序无需跳到另一个位置处执行代码,再跳回来
- 内联函数的运行速度比常规函数稍快
- 代价是需要占用更多内存
- 如果程序在10个不同的地方调用同一个内联函数,则该程序将 包含该函数代码的10个副本
- 图示:
- 使用这项特性,必须采取下述措施之一:
- 在函数声明前加上关键字inline
- 在函数定义前加上关键字inline
- 内联函数不能递归
C语言使用预处理器语句#define来提供宏——内联代码的原 始实现
上述示例只有第一个能正常工作。可以通过使用括号来进行改进:
8.2.1 创建引用变量
C++给==& ==符号赋 予了另一个含义,将其用来声明引用
将rodents作为rats变量 的别名
&不是地址运算符,而是类型标识符的一部分
int &指的是指向int的引用
rats和rodents的值和地址都相同
- 必须在声明引用时将其初始化,而不能像指针那样,先声明,再赋值
- 引用更接近const指针,必须在创建时进行初始化,一旦与某个变量 关联起来,就将一直效忠于它
即rodents引用的还是rats