gpt4 book ai didi

c - 范围和链接有什么区别?

转载 作者:行者123 更新时间:2023-12-04 10:33:07 24 4
gpt4 key购买 nike

我尝试了不同的网站,但我不明白。你能用简单的英语解释一下吗?

最佳答案

“scope”是编译器的命名空间;
“链接”是关于编译单元的。

我再解释一下:在函数中声明的变量具有该函数的作用域,即它仅在该函数内可见。在源文件中声明为静态的变量只能由该源文件(以及所有包含的文件!)中的代码看到。变量也可以具有全局作用域:它们可以在源文件中引用,但不在该源文件中声明(分配),而是在另一个源文件中声明。

我们应该说“编译单元”而不是“源文件”,因为它是被编译的 C 源文件,加上所有包含的文件。范围是指编译器在编译单元中可以“看到”的所有内容。这些是命名空间。

项目编译后有许多目标文件,每个编译单元一个。每个都可以引用未在编译单元中声明的变量。链接器现在必须解析目标文件之间的这些引用:链接。

这也适用于函数。

关于c - 范围和链接有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26580038/

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