帅气小胖子 2024-03-20 21:29 采纳率: 50%
浏览 5

C++内联函数的提问

关于C++中内联函数

#include <iostream>

using namespace std;
inline int add(int a,int b)
{
  return a+b;
}

int main()
{   add(4,5);
   
    cout << "Hello world!" << endl;
    return 0;
}


如果按照我对内联的理解,不应该是主函数中,直接不执行cout语句了吗?
实际测试结果还是输出了?请问该如何理解?

  • 写回答

2条回答 默认 最新

  • 码农阿豪@新空间 优质创作者: Java、后端开发技术领域 2024-03-20 21:29
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    内联函数的作用是减少函数调用的开销,因为内联函数不用压栈和出栈,直接将函数体复制到调用处。但是内联函数并非一定会被内联展开,编译器可能会根据具体情况进行优化决策。 在上述代码中,虽然add函数被声明为内联函数,但是由于函数体较短,编译器可能会决定将其展开。因此,在main函数中调用add函数,会直接将4和5相加,在执行cout语句输出"Hello world!"。因此,虽然add函数被调用了,但是并未产生函数调用的开销,也没有影响到主函数的执行流程。 需要注意的是,内联函数的作用并非提高程序的运行速度,而是减少函数调用所占用的空间,应该谨慎使用内联函数,避免滥用造成不必要的代码膨胀。
    评论

报告相同问题?

问题事件

  • 创建了问题 3月20日