内联函数
使用inline关键字将函数变为内联函数,函数内联是为了降低函数调用时占用的多余时间,多余时间的产生在,程序需要把函数的变量以及返回值压入栈中,再跳转到函数执行的位置,最后在将返回值出栈。
函数内联的原理是直接将调用函数的代码拷贝到执行函数的那段代码中。
这种做法虽然降低了函数的调用时间,但是这样使代码的相同率增加,造成代码膨胀。只有语句较少的函数才会使用内联函数。
inline void test_a()
{
cout << "这是一个内联函数" << "\n" << endl;
}
int main()
{
test_a();
}
函数重载
函数重载的目的是为了使函数的命名变得简单,编译器通过函数传入参数的数量与参数的类型,进行区分,应该调用那个函数。
函数的返回值类型不同时,不是函数的重载,那称为函数的重定义。
void test_a()
{
cout << "这是一个内联函数" << "\n" << endl;
}
void test_a(int a, int b)
{
cout << "第一个重载函数" << endl;
}
void test_a(long c, long d)
{
cout << "第二个重载函数" << endl;
}
void test_a(double e, double f)
{
cout << "第三个重载函数" << endl;
}
int main()
{
test_a();
test_a(1,2);
test_a(300000000000,300000000);//依旧调用的是第一个重载函数
test_a(3.1,3.2);
}
函数的缺省参数
函数的缺省值相当于函数的默认值,缺省值的目的是为了增加函数的可扩充性。
void test(int a=10, int b=20,int c=30)
{
cout << "第一个数\t\n"<<a<<"第二个数\t\n"<<b<<"第三个数\t"<<c;
}
int main()
{
test();
test(11,22);
//test(,20,80);
}