2021.10.26 17:14:26
代码直接内嵌而无需跳转进入函数,执行速度更快,但存储空间占用更大。适用于函数体短且调用频繁的地方。
在函数原型/定义前加上关键字inline
即可。例如:
inline int add(int a, int b){return a+b;}
注意:内联函数不能递归。
C语言的寄存器变量:将值存储在处理器的寄存器中,能提高运行速度。声明前加上
register
即可。不过一般很少用,因为现在编译器优化都很强了。
&
的重载主要用于函数的参数,以此实现传址调用,和const指针
比较像。不过和指针又有区别:声明时就得初始化。
#include <iostream>
using namespace std;
void swap(int &a, int &b){int temp=a;a=b,b=temp;}
int main(void)
{
int rats;
int &rodents = rats;
int a = 5, b = 3;
<<"a="<<a<<" b="<<b<<endl;
cout(&a, &b);
swap<<"a=:<<a<<" b="<<b<<endl;
cout
return 0; //C++可以不加
}
int chico(int n, int m, int c=0);
允许声明同名但不同参的函数。这一般用来解决对不同类型参数应用同一种操作的情况,即“泛型编程”。典型的例子如下:
int abs(int x){return x>0?x:-x;}
float abs(float x){return x>0?x:-x;}
double abs(double x){return x>0?x:-x;}
当然,也可以使用C++模板来完成。
借助模板,可以实现与数据类型无关的编程。