gpt4 book ai didi

c - 外部声明和函数定义都在同一个文件中

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

我只是在浏览 gcc 源文件。在 gcc.c 中,我发现了类似的东西

extern int main (int, char **);

int
main (int argc, char **argv)
{

现在我的疑问是 extern 是告诉编译器特定函数不在这个文件中,但会在项目的其他地方找到。但是在这里,main 的定义紧跟在 extern 声明之后。那么 extern 声明的作用是什么?

在这个具体的例子中,extern 似乎表现得像我们在汇编中使用的 export,我们在模块外导出一个特定的符号

有什么想法吗?

最佳答案

您误解了 extern - 它告诉编译器定义在另一个文件中,它只是声明它存在而没有定义它。在同一个文件中定义它是完全可以的。

C 有声明(声明某物存在而不定义它)和定义(实际上使它存在)的概念。您可以声明任意多次,但只能定义一次。

因为默认情况下函数具有外部链接,所以 extern 关键字在这种情况下无关紧要。

关于c - 外部声明和函数定义都在同一个文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10137037/

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