c++中的内联函数和函数默认参数的设定

本文介绍了C++中的内联函数,其目的是减少函数调用开销,但是否实现内联由编译器决定。接着讨论了函数重载,即在同一作用域内使用相同函数名但参数不同的多个函数。此外,还提到了函数默认参数的使用,允许在函数调用时省略某些参数值。最后,提到了C++的externC用于混合C和C++代码编译。
摘要由CSDN通过智能技术生成

内联函数

在定义的时候用关键字inline修饰,声明的时候不需要使用
作用:在编译阶段 将内联函数总的函数体替换函数调用处,避免函数调用时的开销
但是inline只是对编译器的一个建议,具体能不能变成内联函数还是由编译器自动决定

函数重载

函数重载 是c++的多态的特性(静态多态)
定义 用同一个函数名 代表不同的函数功能
在统一作用域,函数的参数类型,个数,顺序不同都可以重载

void printFun(int a)
{
    cout << a << endl;
}

void printFun(int a, char (&b)[32])
{
    cout << a << endl;
    cout << b << endl;
}

void test01()
{
    int a = 10;
    char b[32] = "123";// 在string的情况下,就把还是用char 定义,但是用数组的形式表示,就想着是数组就可以了!!调用方法也是数组的形式

    printFun(a);// 10
    printFun(a,b);// 10 123

}

函数默认参数

python中也有这个功能,示例如下

def add(x, y, z=None):
if z:
return x + y + z
else:
return x + y

print(add(2, 3)) # 输出 5
print(add(2, 3, 4)) # 输出 9

void testfunc01(int a = 10, int b = 20)
{
    cout << a+b << endl;
}
//void testfunc02(int a , int b = 20, int c)// 注意,如果是testfun(int a, int b = 10, int c =10) 出现了int b是默认参数时,b后面的都必须有默认参数,否则会报错
//{
//    cout << a+b << endl;
//}
void test02()
{
    testfunc01();
    testfunc01(100);
    testfunc01(100,200);
}

如果声明和定义是分开的化,在声明的时候使用默认参数就可以,定义的时候不需要

附录

c++也可以添加占位参数,只是在函数内不能使用(目前不知道为啥要有展位参数)

extern “C”
目的是声明c++中有c语言的代码,按照c语言的编译器进行编译
#if _cplusplus
extern “C”{}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值