Linux设备驱动程序中的静态功能?

Linux设备驱动程序中的静态功能?,第1张

概述是否有一个原因, linux代码中的设备驱动程序中的大多数功能定义被定义为静态?有没有理由呢? 我被告知这是为了范围界定和防止命名空间污染,任何人都可以详细解释为什么在这种情况下使用静态定义? 声明为静态的函数在它们定义的翻译单元之外是不可见的(翻译单元基本上是一个.c文件).如果一个函数不需要从文件外部调用,那么它应该是静态的,以免污染全局命名空间.这使得名称之间的冲突不太可能发生.导出的符号通 是否有一个原因,linux代码中的设备驱动程序中的大多数功能定义被定义为静态?有没有理由呢?

我被告知这是为了范围界定和防止命名空间污染,任何人都可以详细解释为什么在这种情况下使用静态定义?

解决方法 声明为静态的函数在它们定义的翻译单元之外是不可见的(翻译单元基本上是一个.c文件).如果一个函数不需要从文件外部调用,那么它应该是静态的,以免污染全局命名空间.这使得名称之间的冲突不太可能发生.导出的符号通常用某种子系统标签来识别,这进一步减少了冲突的范围.

通常,这些函数的指针最终在结构体中,因此它们实际上是从它们定义的文件外部调用的,而不是其函数名称.

总结

以上是内存溢出为你收集整理的Linux设备驱动程序中的静态功能?全部内容,希望文章能够帮你解决Linux设备驱动程序中的静态功能?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

原文地址: http://outofmemory.cn/yw/1048385.html

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

发表评论

登录后才能评论

评论列表(0条)

保存