欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++的inline函数

程序员文章站 2024-03-23 13:29:04
...

C++中使用const 变量替换宏定义
当然C++中也有使用inline 函数替换宏代码片段;

#include <iostream>


using namespace std;


inline void printfA()
{
    int a =10;
    cout << "a = " << a << endl;

}
int main()
{
    printfA();
    cout << "hello world!"<<endl;
    system("pause");
    return 0;
}


其实 内联函数只是让C++编译器知道什么是内联函数 处理的时候回去替换整个一段代码的片段,其他的对于程序员来说都是一样的,直接可以当成普通的函数处理;

  1. 内联函数必须和实现 的函数体写在一块,不能进行声明,虽然声明内联函数能够通过编译,但是经过声明内联函数C++有可能不会将其在当做成内联函数处理;
  2. 内联函数内有普通函数的开销,没有压栈,跳转返回,所以速度很快,通常将短小精悍的函数定义成内联函数;
  3. 内联函数也有普通函数的特征,会进行参数的检查返回类型的检查等
  4. 内联函数是对编译器的一种请求,所以编译器可能会拒绝这种请求;
  5. 内联函数由编译器处理直接编译之后将函数体插入调用的地方
  6. 宏代码片段由宏处理器处理,进行简单的替换,没有任何的编译过程
  7. 内联函数由编译器处理,因此一些函数即使没有声明内联函数,也可能被编译器处理成内联函数

函数的占位参数 函数调用时必须写够参数

void printfA(int a,int b,int)
{
    cout << a << b<<endl;
}
//调用的时候必须歇够三个参数
如printfA(3,2,1);

占位参数和默认参数结合为以后的程序扩展留下线索

#include <iostream>


using namespace std;

void kuozhan(int a,int b,int  =1)
{

    cout << "a =" << a <<"b = " << b << endl;
}


int main()
{
    kuozhan(1,2);
    kuozhan(1,2,3);

    cout << "hello world!"<<endl;
    system("pause");
    return 0;
}