C++内联函数:用来替代C中的宏函数

C++  类和对象 关系???

  1. 对象是对类的实例
  2. 类是对对象的抽象

c中我们经常把一些短并且执行频繁的计算写成宏,而不是函数,这样做的理由是为了执行效率,宏可以避免函数调用的开销(压栈),这些都由预处理来完成。


但是在c++出现之后,使用预理宏会出现两个问题:
■第一个在C中也会出现,宏看起来像一个函数调用,但是会有隐藏一些难以发现的错误。
■第二个问题是c++特有的,预处理器不允许访问类的成员,也就是说预处理器宏不能用作类类的成员函数。为了保持预处理宏的效率又增加安全性而且还能像一般成员函数那样可以在类里访问

宏函数缺陷:没有作用域,没有类型,展开时容易出问题(eg:入参++a带入宏函数)

如果是函数,就不会出现上述的问题。用内联函数来解决这个问题:

  

inline 函数定义时,前面要加inline !!!

只在  声明时加inline,但定义时不加inline不行!!

!!!!!!!!!!!!!!

对函数取地址:inline了,所有函数被替换了,没有入口了,所以不能对函数进行取址操作

reference:

c++ 内联函数 (讲解的TM真好)

https://blog.csdn.net/u011327981/article/details/50601800

发布了144 篇原创文章 · 获赞 58 · 访问量 22万+

猜你喜欢

转载自blog.csdn.net/qqyuanhao163/article/details/100569338