首页 > 编程知识 正文

什么叫内联函数,什么是单调函数

时间:2023-05-06 06:46:19 阅读:223289 作者:3257

内联函数 内联函数(inlinefunction)宏函数(带参数的宏)的缺点:内联函数条件:

内联函数(inlinefunction)

要好好努力然后多挣钱,才养得起自己这个爱吃的胃,爱玩儿的心,爱逛爱买的习惯,就算是一个人往一个人来,也能生活得很好。

c++从c中继承的一个重要特征就是效率。假如c++的效率明显低于c的效率,那 么就会有很大的一批程序员不去使用c++了。 在c中我们经常把一些短并且执行 频繁的计算写成宏,而不是函数,这样做的理由是为了执行效率,宏可以避免函数 调用的开销,这些都由预处理来完成。 但是在c++出现之后,使用预处理宏会出 现两个问题: 第一个在c中也会出现,宏看起来像一个函数调用,但是会有隐藏 一些难以发现的错误。 第二个问题是c++特有的,预处理器不允许访问类的成 员,也就是说预处理器宏不能用作类类的成员函数。 为了保持预处理宏的效率又增加安全性,而且还能像一般成员函数那样可以在类里 访问自如,c++引入了内联函数(inlinefunction). 内联函数为了继承宏函数的效率,没有函数调用时开销,然后又可以像普通函数那 样,可以进行参数,返回值类型的安全检查,又可以作为成员函数。

宏函数(带参数的宏)的缺点:

第一个在c中也会出现,宏看起来像一个函数调用,但是会有隐藏一些难以发现的错误。
第二个问题是c++特有的,预处理器不允许访问类的成员,也就是说预处理器宏不能用作类的成员函数
内联函数:内联函数为了继承宏函数的效率,没有函数调用时开销,然后又可以像普通函数那样,可以进行参数,返回值类型的安全检查,又可以作为成员函数
内联函数:是一个真正的函数。函数的替换 发生在编译阶段

inline int my_mul(int x,int y){ return x*y;}void test01(){ cout<<"my_mul = "<<my_mul(10+10,20+20)<<endl;}

任何在类内部定义的函数自动成为内联函数。

class Person{ public: Person(){ cout << "构造函数!" << endl; } void PrintPerson(){ cout << "输出 Person!" << endl; } 内联函数条件:

1、不能存在任何形式的循环语句
2、不能存在过多的条件判断语句
3、函数体不能过于庞大 不能对函数进行取址操作
内联仅仅只是给编译器一个建议,编译器不一定会接受这种建议,如果你没有将函 数声明为内联函数,那么编译器也可能将此函数做内联编译。一个好的编译器将会 内联小的、简单的函数。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。