C++ 中 inline 的处理

来源:互联网 发布:淘宝卖家淘客怎么设置 编辑:程序博客网 时间:2024/05/01 21:55

首先声明,我使用的是 Visual Studio 2008. 对其它编译器是否如此不做保证。

1. inline 关键字写在声明和实现里 是一样的。
2. inline 函数的实现应该写在头文件中,除非只在当前的c文件中使用。(由于没有函数实体,因此连接器是找不到它的)
3. inline 函数传入的参数和普通参数规则相同,也就是说,如果传入一个对象,这个对象会被复制(复制构造函数会被调用)。
4. 推论返回值的处理也应该和普通函数相同。另外,VC 会使用返回值优化。
5. 即使 inline 函数内部使用了循环、条件判断,仍然会被展开。
6. 如果 inline 函数内进行了嵌套,函数仍然会被展开,同时另外生成一个函数实体。