内联函数inline

《thinking in C++》page210

在c++中,宏的概念是作为内联函数(inline function)来实现的,而内联函数无论从那一个方面上说都是真正的函数,编译器会检测内联函数的参数类型,返回值等。唯一不同于普通函数的地方就是在适当的地方像宏一样展开。所以不需要调用开销(参数压栈,生成汇编语言的CALL,返回参数,执行汇编语言的RETURN)。

内联函数的定义:

(1)任何在类中定义的函数,自动成为内联函数

(2)非类的函数加上inline关键字,但是必须是函数体和声明结合在一起,否则编译器将他当做普通函数。例如inline int plusOne(int x);,然后在别的地方定义这个函数。这是没有任何效果的,编译器不会把它当做内联函数

        必须inline int plusOne(int x){return ++x;}才行。

(3)一般应该把内联函数放在头文件中,当编译器看到这个定义时,它把函数类型(函数名和返回值)和函数体放到符号表里。

(4)内联函数常用于类的访问函数access function

posted @ 2016-06-21 16:37  阿瞒123  阅读(171)  评论(0编辑  收藏  举报