阿里海外电商 Lazada C++ 面经

inline 失效的场景有哪些呀,有没有大佬解释一下
====
1. C++ 中 struct 和 class 区别

2. inline 失效场景

3. 智能指针

4. g++ 编译过程

5. epoll,mutex

6. event_loop 了解吗

7. 如何防止一个头文件 include  多次

8. 如何快速判断 2^n,链表判断有环,手撕 LRU
全部评论
在C++中,inline是一种用于优化函数调用的关键字。它的作用是将函数的定义直接插入到调用该函数的地方,以减少函数调用的开销。然而,并非所有情况下都能成功地使函数内联,以下是一些导致inline失效的场景: 函数体过大:如果函数体非常大,将其内联可能导致代码膨胀,造成代码冗余和缓存不命中,反而降低了性能。编译器可能会忽略inline关键字,将函数视为普通的非内联函数。 函数包含递归调用:递归函数无法直接内联,因为递归调用会导致函数体重复嵌套,无法在编译时展开。 虚函数:虚函数是通过虚函数表进行动态绑定的,编译器无法在编译时确定调用哪个函数,因此虚函数不能内联。 函数指针:当函数通过函数指针进行调用时,编译器无法在编译时确定具体调用哪个函数,因此无法内联。 条件判断、循环和异常处理:包含复杂的条件判断、循环和异常处理的函数,由于控制流程的复杂性,编译器可能不会内联这些函数。
11 回复 分享
发布于 2023-06-08 22:06 广东
inline函数好像是将代码直接替换到调用的位置,提高效率,建议性的关键字,一般来说还看编译器是否优化。 1、函数内太多for或者if选择。 2、递归函数。 3、构造和析构函数。 4、虚函数。 5、使用函数指针调用内联函数。(这个不清楚。。。)
1 回复 分享
发布于 2023-06-08 17:48 广东
老哥是实习还是提前批呀
1 回复 分享
发布于 2023-06-08 11:17 北京
手撕在哪个平台撕的啊 楼主
点赞 回复 分享
发布于 2023-06-10 09:37 广东
这么难,是北京那个引擎架构嘛
点赞 回复 分享
发布于 2023-06-08 12:07 湖南
有后续了吗
点赞 回复 分享
发布于 2023-06-08 11:00 湖南
面试用了多久
点赞 回复 分享
发布于 2023-06-08 11:00 广东

相关推荐

点赞 评论 收藏
分享
评论
5
41
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务