区别 :内联函数和普通函数的区别

内联函数和普通函数的区别:
1、在编译过程中,内联函数在函数的调用点,把函数代码全部展开,所以没有标准函数的栈帧的开辟和回退
(如果 调用函数的开销 > 函数执行的开销,那么就建议写为内联函数 )
调用的开销:函数的栈帧的开辟和回退
执行的开销:函数体内代码执行的开销

2、内联函数只在本文件可见,编译阶段就进行了替换,所以不产生符号,所以一般在头文件中定义,这样就可以在其它文件调用。普通函数产生符号,多个文件引用头文件,会产生符号重定义的错误。
.编译阶段不编译.h文件,只编译.c 或.cpp 文件

注意:inline只在release版本起作用,debug版本inline函数也需要栈帧的开辟和回退

发布了21 篇原创文章 · 获赞 5 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览