inline函数:函数调用点代码直接展开(文本替换) 没了开栈和清栈的开销,效率高
inline int Sum(int a,int b)
{
return a+b;
}
1.inline 函数和普通函数的区别:
inline函数只能在本文件可见
2.inline函数和static修饰的函数的区别:有调用函数的开销
static会在符号表里把global符号-->local函数
3.inline函数和宏的区别:
inline 编译 安全检查机制,类型检查
宏 预编译 无安全检查机制
4.为什么不把所有函数默认为内联?
inline 以代码膨胀为代价--->空间换时间 -->过度--.>空间消耗,效率降低
建议:
函数体执行的开销>函数开栈和清栈的开销,不建议
inline特征:
1.inline 写在.h文件(本文件可见)
2.inline 只在 release版本生效
3.inline只是给编译器的一个建议 (递归,循环 编译器不设inline)
4.inline是基于实现的,不是基于声明的
引用-->别名
int main()
{
int a=10;
int &b=a;
return 0;
}
底层实现--->以指针的方式来实现的
引用的特点:
1.初始化
2.引用不能改变
3.引用是不能引用取地址的数据
4.引用变量只能使用所引用的内存单元