b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

C ++内联函数

电脑杂谈  发布时间:2020-06-24 21:09:19  来源:网络整理

c#调托管c函数_c++ 内联函数_c回调c++函数

内联函数和普通函数之间的区别:

内存中只有一个普通函数的副本,在任何地方调用她都需要执行3个步骤:

①: 找到此功能

②: 执行此内联函数

③: 返回结果(可能为空),结束此函数,继续执行此函数下方的代码

c#调托管c函数_c回调c++函数_c++ 内联函数

但是,内联函数的调用步骤与不同函数相同,因为它们在编译时不同:

如何编译:

如果此函数是嵌入式函数,则编译器将复制此函数的副本,并在每次调用时将其放置在此位置. 因此,内联函数的执行步骤不像其他函数那样多,而是直接执行.

这样做的优点是效率相对较高c++ 内联函数,有更多的调用位置,然后有更多的副本,并且占用更多的内存.

一个简单的内联:

c++ 内联函数_c回调c++函数_c#调托管c函数

#include <iostream>
using namespace std;
inline void fun1()
{
    cout << "这是内联函数" << endl;
}
int main()
{
    fun1();
    return 0;
}

分析:

声明内联函数需要使用关键字: 内联

要注意的另一点:

①: 函数声明(带有声明)及其实现需要内联关键字

c回调c++函数_c#调托管c函数_c++ 内联函数

#include <iostream>
using namespace std;
inline void fun1();
inline void fun1()
{
    cout << "这是内联函数" << endl;
}
int main()
{
    fun1();
    return 0;
}

②: 类内定义-所有类内实现都需要使用inline关键字

#include <iostream>
using namespace std;
class InlineC
{
public:
    inline void fun();
};
inline void InlineC::fun()
{
    cout << "这是内联函数" << endl;
}
int main()
{
    InlineC *in = new InlineC;
    in->fun();
    delete in;
    return 0;
}

内联函数类似于宏c++ 内联函数,它们都是副本,但它们比宏更安全

例如:

c回调c++函数_c#调托管c函数_c++ 内联函数

#include <iostream>
using namespace std;
#define SUM(x) x*x
class InlineC
{
public:
    inline void fun();
};
inline void InlineC::fun()
{
    cout << "这是内联函数" << endl;
}
int main()
{
    InlineC *in = new InlineC;
    in->fun();
    delete in;
    cout << "--------------------------------------" << endl;
    cout << SUM(1+3) << endl;
    return 0;
}

结果:

wKiom1kYa1vwigObAAAj1JFY99Y812.png-wh_50

未获得结果16.

宏的严格程度不如内联.

最后,这是默认设置: 将inline的声明和实现写在头部.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-257231-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 焦可文
        焦可文

        既然美国以武力侵犯中国何不用经济制其经济

      热点图片
      拼命载入中...