(转载)内联函数inline和宏定义

(转载)http://blog.csdn.net/chdhust/article/details/8036233
内联函数inline和宏定义
 

内联函数的优越性:函数

一:inline定义的类的内联函数,函数的代码被放入符号表中,在使用时直接进行替换(像宏定义同样展开),没有了调用的开销,效率很高。spa

二:类的内敛函数是一个真正的函数。.net

三:使用内联函数inline能够彻底取表明达式形式的宏定义。code

 

例子:blog

Class A
{

publicint readTest()
{
    return nTest;
}

void setTest(int i);

};

inline void A::setTest(int i)
{
    nTest=i;
};

 

说明:类A的成员函数readTest()和setTest()都是内联函数,readTest()函数的定义体被放在类声明之中,于是readTest()自动转换成inline函数,setTest函数的定义体在类声明以外,所以要加上inline关键字。get

总结inline函数与宏定义的区别:编译

一、内敛函数在编译时展开,而宏是在预编译时就展开了class

二、在编译时内敛函数能够直接被嵌入到目标函数代码中,而宏只是一个简单的文本替换效率

三、内敛函数能够完成诸如类型的检测、语句是否正确等编译功能,宏就不具有这种功能总结

四、宏不是函数,而inline函数是函数

五、宏在定义时要当心处理宏参数,(通常状况是把参数用括弧括起来)。

相关文章
相关标签/搜索