韦东山Linux嵌入式课程社区
直播中

崔琳

7年用户 264经验值
私信 关注

请问static inline有什么作用?

弱弱的问一下 static inline 有什么作用?
1.
uboot的archARMincludeasmarch下的s3c2400.h中:
static inline struct s3c24x0_clock_power *s3c24x0_get_base_clock_power(void)
{
    return (struct s3c24x0_clock_power *)S3C24X0_CLOCK_POWER_BASE;
}
......
中的 static inline 有什么作用呢?

2.
在.h  文件中定义了 static  inline  函数 , 当.c 文件包含(#include)这个 .h 文件后,  在.h 文件中定义的static  inline 函数  也就相当于在 .c 中定义的static inline 函数, 因为.h已经被.c 文件包含了
那uboot的archarmcpuarm920ts3c24x0下的speed.c 中
#include
#ifdef CONFIG_S3C24X0

#include
#include

#define MPLL 0
#define UPLL 1
哪一个是包含     archarmincludeasmarch   下的   s3c2400.h       中   static inline   的头文件呢? 还是其它的原因呢??

3.
static inline 是静态的:因为这些函数其实统一接口,大家都需要实现这个接口,如果不用static,那就很有可能重名。编译就会出错了。  这里的接口 指什么呢?? 可以截图看么??
static inline 是内联的:小函数,而是调用的很频繁,用内联会提升很多效率!         那在1. 中可以不指定  XX是内联函数么   ??                                                                                 




本人小白,若有用词不当的地方还请指正,高手勿喷。谢谢!!

回帖(4)

徐波

2019-4-28 13:40:10
首先 static是使本函数只在本文件中使用 避免重名  inline 参考 http://blog.csdn.net/wangzhanhang/article/details/35143
举报

苏笛笛

2019-4-28 13:54:36
学习了!!!!
举报

杨敏

2019-4-28 14:13:45
“关键字inline 必须与函数定义体放在一起才能使函数成为内联,仅将inline 放在函数声明前面不起任何作用。”,这个结论是错误的。也有人说是对的 那这个结论到底是对的还是错的呢??
举报

曾佳宁

2019-4-28 14:32:17
是对的吧
举报

更多回帖

发帖
×
20
完善资料,
赚取积分