美文网首页
C++inline的初步研究

C++inline的初步研究

作者: 狗子孙 | 来源:发表于2018-09-14 14:40 被阅读5次

C++的inline函数在编译阶段会被替换成函数体中的内容,与宏定义不同的时,宏定义是单纯的字面替换,无法检验语法错误,无法操作类的私有成员,不能调试,并且经常存在结合性的问题。内联函数的几个常见注意点:

  1. 内联函数必须在定义的时候使用,单纯声明无意义。
  2. 类成员函数若直接在类的声明中写实现体,则也是内联的,但编译器会根据它的实现决定到底是不是内联的。
  3. 引用其他文件中的内联函数,要在头文件中定义,不能光在头文件中声明,因为编译器对内联函数首先做替换操作,而非调用操作。当然直接在使用内联函数的源文件中定义内联函数也是可以的。
  4. 在头文件中修改了inline函数,则所有引用此头文件的源文件都要重新编译。

内联函数的优点是减少函数调用时的时间和空间开销(函数调用需要将当前变量存放在栈中,可能的拷贝操作等),缺点是增加了代码体积。所以当函数体本身不大,不包含循环或其它复杂逻辑时,可以考虑使用内联函数。

相关文章

网友评论

      本文标题:C++inline的初步研究

      本文链接:https://www.haomeiwen.com/subject/iqsvgftx.html