C语言inline函数

C语言inline函数,第1张

普通的函数调用的时候需要消耗栈空间,cpu和内存利用率会增高,c99中引入了inline关键字,可以在编译的时候,在函数调用处直接把函数像宏一样展开,这样在增加代码空间的情况下降低了cpu和内存的使用。

1、如果Inline函数定义在cpp/c文件中,则本文件里的函数调用会转换为内联代码,但是其他文件的函数调用还是和普通函数一样(gcc标准和c99标准有差别,有可能链接时会找不到函数符号)。

2、如果inline函数定义在.h文件中,则其他文件的函数调用也会转换为内联代码。

3、由于内联函数调用时候不会压栈,所以函数不能是递归函数。

库里面定义的函数是不可能被inline的

如果是库中的函数,那么 在别人用的时候会有头文件吧

如果inline的实现 是在头文件中,那么才可能真的起到内联的效果,不过那样也不能算在库里面了吧。

如果是库里面定义实现,头文件中声明为inline,那是没有inline效果的。

inline是内联函数,一般用于比较短小的会被经常调用的函数前面,当调用这个函数的时候不是采用链接的方式,而是相当于直接将函数体的代码贴到调用处,节省了资源加快了运行速度。

const静态函数这里表示该函数体内不允许修改成员变量的值。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11915674.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存