gpt4 book ai didi

c - c库中的全局变量

转载 作者:太空宇宙 更新时间:2023-11-04 00:02:52 25 4
gpt4 key购买 nike

如何确保某些 c 库 (.a) 的源代码是否使用全局变量?有什么工具可以解析这些细节吗?

最佳答案

库由模块(编译的 C 文件)组成。一个模块可以声明一个全局变量。引用全局变量的任何模块(库内部或外部)都会导致声明全局变量的模块包含在您的构建中。

全局变量可以是static。然后它仅在该模块中可见。

全局变量可以是extern。这意味着它不存在于当前模块中,并且根本不存在于库中,在这种情况下,用户必须提供变量。

在第一种和第三种情况下,变量将列在库的符号表或库的修正表中。第一个是被调用者可用的符号列表;第二个变量列表,其确切地址必须在加载时固定。可能存在必须修复但未导出的变量。符号始终包含名称,修复不需要与其名称一起列出。

那么查看库的符号表的工具可能可以回答您的问题。

注意:全局变量列在库的符号表中并不意味着该变量被库中的任何函数使用

关于c - c库中的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35941146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com