C语言中全局变量说明符extern该如何使用?

 我来答
928959189
2015-10-30
知道答主
回答量:16
采纳率:0%
帮助的人:6.1万
展开全部
  1. 在C语言中,extern是全局变量声明的关键字
    只要声明全局变量就默认 前面加extern(程序员可以不加,但编译器默认加上)

  2. 若本文件 引用别的文件中的全局变量  一定要加上extern 声明一下,如

    在file1.c中定义的全局变量,file2.c中想要使用该变量,即使include了头文件,但是如果没有extern关键字来声明的话,在file2.c中是无法访问到的。

千锋教育
2015-12-28 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
  如果函数的声明中带有关键字extern,仅仅是暗示这个函数可能在别的源文件里定义,没有其它作用。即下述两个函数声明没有明显的区别:
  extern int f(); 和int f();
  当然,这样的用处还是有的,就是在程序中取代include “*.h”来声明函数,在一些复杂的项目中,比较习惯在所有的函数声明前添加extern修饰。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友26fdb175f
2012-11-25 · TA获得超过515个赞
知道小有建树答主
回答量:252
采纳率:0%
帮助的人:166万
展开全部
不在当前文件中定义,也不在当前文件所直接和间接include的文件中定义,在同个工程的其他文件中定义,但需要在当前文件中使用的变量。就需要使用extern。如果没有使用extern,就告诉编译器,这里是在新定义一个变量,需要新开辟内存。而如何使用了extern,就告诉编译器,这里使用的是别的地方已经定义好的变量,不必新开内存。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-11-25
展开全部
函数或变量用extern关键字声明后,编译器将从其他cpp文件寻找它的定义。注意VC2008不支持这一点,必须用在头文件中声明变量或函数然后通过包含通过包含头文件使用。
extern int a;//声明外部变量
extern int a=10;//编译器忽略extern,当成是定义一个变量a。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jackwind1987
2012-11-25 · TA获得超过2738个赞
知道大有可为答主
回答量:1268
采纳率:50%
帮助的人:472万
展开全部
函数和变量都有声明和定义两个写法。声明的目的是告诉别的代码这个变量的名称,而定义比声明多了一个功能,除了告知名称以外,还会为这个变量分配内存。
对于函数来说,加不加extern都没有关系,因为有函数体一定是定义,加extern也会被忽略,而没有函数体的就是声明,
int add(int a, int b); 等价于 extern int add(int a, int b);
int add(int a, int b) { return a + b; } 等价于 extern int add(int a, int b) {return a+b;}
如果是变量的话
int a; // 定义了一个变量a
extern int a; // 声明了一个变量a
变量可以有任意个声明,但是只能有一个定义,全局变量定义在多个文件中,只能有一个文件中的不加extern,其余的都必须加extern表示声明。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式