加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 03:29:06 所属栏目:百科 来源:网络整理
导读:我只是浏览 gcc源文件.在 gcc.c中,我发现了类似的东西 extern int main (int,char **);intmain (int argc,char **argv){ 现在我的怀疑是extern是告诉编译器,特定的功能不在这个文件,但会被发现在项目的其他地方.但在这里,main的定义是在extern声明之后.那么
我只是浏览 gcc源文件.在 gcc.c中,我发现了类似的东西
extern int main (int,char **);

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

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

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

有任何想法吗?

解决方法

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读