我的CPP之路

路漫漫其修远兮
随笔 - 42, 文章 - 0, 评论 - 16, 引用 - 0
数据加载中……

C语言中的extern关键字笔记

以前一直觉得extern是多余的,我定义全局变量,或include进定义了全局变量的h文件,然后在main中使用,这样在main中可以省略extern定义所需的变量。现在终于知道extern的作用了,对于两个不同的源文件,c1.c和c2.c,在c1中定义的int a,在c2不include进c1的前提下,如果要在c2中引用修改a,就必须extern int a来申明下。然后一起交给gcc编译。

gcc -o outname c1.c c2.c

编译器在c2中察觉到extern int a;就会在c2以外的文件寻找int a的定义。

以下这篇帖子写得比较简介直接:

http://www.cplusplus.com/forum/general/21368/#msg114884

在以下页面里也提到:

http://zhidao.baidu.com/question/135690736

extern是扩大变量的作用域。常见的是在源文件里定义变量,在头文件里用extern声明变量,随后在需要使用此变量的源文件里包含头文件即可。

下面也是extern的解释,比较详细,但不是原创,找不到源地址,google了几次发现最早的一篇中显示的“转自xx地址”已经失效。。。

http://www.cppblog.com/C-Student/archive/2008/07/10/55787.html

下面的C++关键点页面中也有提到:

http://dev.firnow.com/course/3_program/c++/cppxl/20081123/152346.html

posted on 2010-12-28 11:47 yanvenhom 阅读(432) 评论(0)  编辑 收藏 引用 所属分类: C/C++


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理