extern声明和函数定义都在同一个文件中

前端之家收集整理的这篇文章主要介绍了extern声明和函数定义都在同一个文件中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我只是浏览 gcc文件.在 gcc.c中,我发现了类似的东西
extern int main (int,char **);

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

现在我的怀疑是extern是告诉编译器,特定的功能不在这个文件,但会被发现在项目的其他地方.但在这里,main的定义是在extern声明之后.那么外部宣言的目的是什么呢?

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

有任何想法吗?

解决方法

你误解了extern – 它不会告诉编译器的定义是在另一个文件中,它只是声明它存在而不定义它.在同一个文件中定义它是完全可行的.

C有声明的概念(声明某事物不存在定义)和定义(实际上使其存在).您可以随意声明一些东西,但只能定义一次.

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

原文链接:https://www.f2er.com/c/111214.html

猜你在找的C&C++相关文章