弱弱的问一下 static inline 有什么作用?

one's pygmy effort 2014-09-22 06:27:21
弱弱的问一下 static inline 有什么作用?
1.
uboot的arch\arm\include\asm\arch下的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的arch\arm\cpu\arm920t\s3c24x0下的speed.c 中
#include <common.h>
#ifdef CONFIG_S3C24X0

#include <asm/io.h>
#include <asm/arch/s3c24x0_cpu.h>

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

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




本人小白,若有用词不当的地方还请指正,高手勿喷。谢谢!!
...全文
1173 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
one's pygmy effort 2015-05-15
  • 打赏
  • 举报
回复
不好意思,前一段时间太忙忘了结贴,给帖子加10分,希望大家不要在意。
百变狸猫 2014-11-14
  • 打赏
  • 举报
回复
头文件里定义的函数,如果不加inline,就会报冲突.inline的意思是函数体在调用的地方直接展开,有点类似宏的意思.但实际上inline只是给编译器一个建议,具体采用不采用编译器自己说了算.使用inline的最实际的好处就是可以在.h文件中定义函数体而不会报冲突. static较少见在.h里面使用,一般都是在.cpp文件里面使用,表示这个函数名或者变量名只有在这个文件范围内才有效.
fly 100% 2014-10-16
  • 打赏
  • 举报
回复
static  本文调用 防止和外部的函数名字等冲突  隔离作用 inline  预编译会运算   减少最后编译的代码量   减小汇编行数
红尘-有梦 2014-10-16
  • 打赏
  • 举报
回复
static 表示函数只在本文件被调用 inline是内联函数,编译的时候会在调用该函数的地方将函数展开,优点是程序运行时省去了函数调用耗费的时间,缺点是占用了空间。
「已注销」 2014-10-05
  • 打赏
  • 举报
回复
如果编译器能正确inline函数的话,static就是多余的,但是如果编译器忽略inline前缀的话,static就是必须的。在vc里面还有个特殊的关键字 __forceinline,在vc上用他就不需要static了
木马男孩 2014-09-30
  • 打赏
  • 举报
回复
static 用于修饰函数的时候,意思是此函数只能在此文件中使用,所以static inline 病不冲突,按字母理解就行了
one's pygmy effort 2014-09-24
  • 打赏
  • 举报
回复
http://blog.csdn.net/wangzhanhang/article/details/35143#reply中讲到:“关键字inline 必须与函数定义体放在一起才能使函数成为内联,仅将inline 放在函数声明前面不起任何作用。”有人说这是错的也有人说这是对的 那这到底是对的还是错的呢??
91program 2014-09-23
  • 打赏
  • 举报
回复
两个关键字,分开来理解 static:静态函数,这也是最基本的语法。包含到不到的源文件中时,每个源文件中相当有一份独立的 static 函数。可以说是说来防重名的,但也不只是这个功能。 inline:内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。可以提高编译效率!
one's pygmy effort 2014-09-22
  • 打赏
  • 举报
回复
uboot版本:u-boot-2010.06
内容概要:本文档聚焦于通信系统中的调制解调技术与Turbo码的结合应用,系统研究了GMSK调制的二比特差分解调方法,以及Turbo码分别与BPSK、GMSK调制方式联合使用的系统性能。通过Matlab平台实现了完整的通信链路仿真,涵盖信号调制、信道编码、解调解码及误码率分析等关键环节,深入探讨了不同调制体制下Turbo编码系统的抗干扰能力与频谱效率表现。研究不仅提供了算法实现代码,还包含了详细的性能对比分析,有助于理解现代数字通信中高效编码调制技术的设计原理与工程实现。此外,文档附带多个相关科研方向的仿真案例,展现出广泛的技术延展性与实际应用价值。; 适合人群:具备通信原理、数字信号处理等相关基础知识,熟悉Matlab编程环境,正在从事无线通信系统仿真、信道编码理论研究或相关领域科研工作的研究生、高校教师及工程技术研究人员。; 使用场景及目标:①深入掌握GMSK调制与Turbo码相结合的技术机制,理解其在提高通信可靠性与频谱利用率方面的优势;②熟练运用Matlab构建完整的数字通信仿真系统,完成从调制编码到解调译码的全流程建模与性能评估;③为无人机通信、卫星通信、移动通信等实际应用场景下的高可靠传输系统设计提供理论支持与算法参考。; 阅读建议:建议结合所提供的Matlab代码逐模块运行与调试,重点关注GMSK差分解调过程与Turbo译码的迭代收敛特性,同时可参考文档中列出的其他研究课题拓展仿真范围,提升综合科研与工程实践能力。
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 标题中所指的"RS485转USB驱动"是一种硬件接口转换技术,其功能在于将传统的RS485通信协议转换为USB接口形式,从而使得现代计算机或设备能够便捷地与采用RS485协议的设备展开通信。RS485作为一种在工业控制、远程通信及多点系统中得到普遍应用的串行通信标准,具备传输距离长、抗干扰性能优异等显著优势。文中提及的型号(CH340、CH341、FT232RL、PL2303、Y-105)是几种常见的USB至UART(通用异步接收发送器)桥接芯片,它们在USB接口与RS485网络之间充当转换媒介的角色。这些芯片赋予USB通信能力,使得计算机可以通过USB接口与RS485网络中的设备执行数据交换。 1. CH340/CH341:这些由韦东山科技研制的USB转串口芯片,常被用于构建低成本的USB转串口适配器。它们提供从USB到UART的转换功能,支持多种波特率的设定,并且在Windows操作系统环境下通常需要安装相应的驱动程序方可正常运作。 2. FT232RL:FTDI公司推出的一款高性能且低功耗的USB到UART桥接器。FT232RL配备全速USB 1.1接口,支持多种串行接口模式,在数据通信、工业控制等领域能够得到广泛应用。同样地,采用FT232RL的设备在连接至电脑时也需要安装对应的驱动程序。 3. PL2303:硅光电子(Prolific)公司所生产的产品,亦是一种常用的USB到UART桥接芯片。它展现出良好的兼容性以及广泛的驱动程序支持,适用于各类USB至串口的应用场景。 4. Y-105:这可能是一款特定的RS485转USB转换模块,或许集成了上述其中一种或多种转换...

21,620

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧