内联函数与宏的使用注意

来源:互联网 发布:网络错误691怎么解决 编辑:程序博客网 时间:2024/06/10 01:23

【转载】1. 内联函数
在C++中我们通常定义以下函数来求两个整数的最大值:
复制代码 代码如下:

int max(int a, int b)
{
return a > b ? a : b;
}
为这么一个小的操作定义一个函数的好处有:
① 阅读和理解函数 max 的调用,要比读一条等价的条件表达式并解释它的含义要容易得多
② 如果需要做任何修改,修改函数要比找出并修改每一处等价表达式容易得多
③ 使用函数可以确保统一的行为,每个测试都保证以相同的方式实现
④ 函数可以重用,不必为其他应用程序重写代码
虽然有这么多好处,但是写成函数有一个潜在的缺点:调用函数比求解等价表达式要慢得多。在大多数的机器上,调用函数都要做很多工作:调用前要先保存寄存器,并在返回时恢复,复制实参,程序还必须转向一个新位置执行
C++中支持内联函数,其目的是为了提高函数的执行效率,用关键字 inline 放在函数定义(注意是定义而非声明,下文继续讲到)的前面即可将函数指定为内联函数,内联函数通常就是将它在程序中的每个调用点上“内联地”展开,假设我们将 max 定义为内联函数:
复制代码 代码如下:

inline int max(int a, int b)
{
return a > b ? a : b;
}
则调用: cout<

include “A.h”

inline int A::max()
{
return a > b ? a : b;
}
Main.cpp :
复制代码 代码如下:

include

include “A.h”

using namespace std;
inline int A::max()
{
return a > b ? a : b;
}
int main()
{
A a(3, 5);
cout<

原创粉丝点击