gpt4 book ai didi

c - C 如何将静态函数的使用限制在它的文件中?

转载 作者:太空狗 更新时间:2023-10-29 16:57:37 25 4
gpt4 key购买 nike

我知道 C 中的静态函数只允许在该文件的范围内调用该特定函数。我感兴趣的是这是如何发生的。它是被放入内存的特定部分,还是编译器对该函数应用了特定的操作。同样的过程可以应用于汇编中的函数调用吗?

最佳答案

声明一个函数 static 并不能真正阻止它被其他翻译单元调用

static 的作用是防止函数按名称从其他翻译单元引用(链接)。这将消除直接调用该函数的可能性,即“按名称”调用。为此,编译器只需从翻译单元导出的外部名称表中排除函数名称。除此之外,静态函数绝对没有什么特别之处。

您仍然可以通过其他方式从其他翻译单元调用该函数。例如,如果您以某种方式获得了指向其他翻译单元中的 static 函数的指针,则可以通过该指针调用它。

关于c - C 如何将静态函数的使用限制在它的文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11614138/

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