我了解到课堂上的功能必须是书中的“内联” 但是,我不明白为什么...... 那本书还不够 我不是英语母语,所以我很难在Engilsh描述的网页上搜索 我国的网站对像我这样的学生非常封闭 所以请回答我
我想 如果一个函数(不是内联)在一个类中,只要编译器引用该函数,就会重复创建函数的堆栈帧(一些地址,参数等)。 所以这就是为什么课堂上的功能必须是内联的? 抱歉我的英语不好
答案 0 :(得分:1)
在C ++的定义中,如果成员函数在class
内声明,编译器将其理解为inline
请注意inline
(包括在 class
内声明的函数的隐式函数)只是编译器的提示,可能是可能实际上inline无法在其某些(或全部或全部)呼叫站点上运行。内联始终是编译器可以自由实现的优化,并且通常也可以启用其他优化。
inline
,甚至可能在编译单元中使用所谓的link-time-optimization(对于g++
编译和< / em>链接-flto -O2
)