前端之家收集整理的这篇文章主要介绍了
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