学习笔记(一):inline内联函数
C++中关键字
inline取代了C语言中表达形式的宏定义。如:#define MYFUNC(value1,value2)((value1-value2)/(value1+value2));
表达形式的宏:
1.表达形式的宏定义效率很高,使用预处理实现,没有参数压栈、代码生成等一系列操作;
2.在使用时,预处理仅仅是做了简单替换,参数类型没有检测;
3.无法使用类保护成员;
4.返回值无法做类型转换。
inline关键字:
1.使用inline后,增加了编译器的参数类型检测,像普通函数一样严格;
2.内联函数的返回值使用方式同普通函数;
3.内联函数作为类的成员函数,正常使用类的成员;
总之,内联函数继承了宏定义表达式的优点,取消了宏定义表达式的缺点。
使用方式:
内联函数适用于简单的表达式,任何使用的地方都会简单的展开。如果函数过大,会造成代码膨胀反而带来坏处,一般用于类的存取函数。
inline关键字只是给编译器一个建议。如果上百行的代码,编译器会自动转换成普通函数去处理。如果在类内定义int GetID(){return m_nID};
这样简短的函数,编译器也会自动按inline函数处理。
一直以来只在CSDN上搜索问题,看看咨询,深深被各种大神折服。
书山有路勤为径,学海无涯苦作舟。
----特开此博客记录学习道路上的点点滴滴,如有错误还请各位大神多多指教。