const string &shortString(cosnt string &s1,const string &s2){
return s1.size()<s2.size()?s1:s2;
}
这个函数的有点:
1.含义清晰 方便理解程序
2.容易修改
3.函数可以确保行为统一
4.函数可以重用
但是开销会比一段算术表达式要麻烦的多:调用要先保存到寄存器 并在返回时恢复; 复制形参,程序还必须转向一个新位置执行。
所以要转化为 内联函数
1.内联函数避免函数调用的开销
在函数返回类型前加上关键字inline就可以将shortString函数指定为内联函数
inline const string &
shorterString(cosnt string &s1,const string &s2){
return s1.size()<s2.size()?s1:s2;
}
内联说明对于编译器来说只是一个建议 编译器可以选择忽略这个建议
2.内联函数应该在头文件中定义 这一点不同于其他函数
return s1.size()<s2.size()?s1:s2;
}
这个函数的有点:
1.含义清晰 方便理解程序
2.容易修改
3.函数可以确保行为统一
4.函数可以重用
但是开销会比一段算术表达式要麻烦的多:调用要先保存到寄存器 并在返回时恢复; 复制形参,程序还必须转向一个新位置执行。
所以要转化为 内联函数
1.内联函数避免函数调用的开销
在函数返回类型前加上关键字inline就可以将shortString函数指定为内联函数
inline const string &
shorterString(cosnt string &s1,const string &s2){
return s1.size()<s2.size()?s1:s2;
}
内联说明对于编译器来说只是一个建议 编译器可以选择忽略这个建议
2.内联函数应该在头文件中定义 这一点不同于其他函数