黑马程序员技术交流社区

标题: extern的问题 [打印本页]

作者: Jr_711    时间: 2014-8-7 21:06
标题: extern的问题
本帖最后由 Jr_711 于 2014-8-10 10:22 编辑

教材中讲到
  1. extern int a;
  2. int main(){
  3.      a = 10;
  4.      return 0;
  5. }
  6. int a;
复制代码
不能省略最后一行的定义,只留下第1行的声明,因为extern是用来声明一个已经定义过的变量。

意思是说  extern int a;   只是声明变量没有定义么?

去掉第一行的 extern 和最后一行的 int a; ,应该也能运行啊


加个extern就只是声明了么?



作者: 从今以后    时间: 2014-8-7 22:04
貌似是这样,只是声明,无法直接使用,需要再定义才可以,或者直接写成 extern int a = 10;
作者: 寇亮    时间: 2014-8-7 23:15
本帖最后由 寇亮 于 2014-8-7 23:16 编辑

对于位于全局变量定义点之前的函数,通过extern声明可以使变量的作用域向前扩充。
作者: ★彬★卍囧神    时间: 2014-8-8 11:04
视频中有详细讲解
作者: Jr_711    时间: 2014-8-10 10:19
★彬★卍囧神 发表于 2014-8-8 11:04
视频中有详细讲解

恩  又看了看视频,上次没注意,老师一句话带过了。
作者: Jr_711    时间: 2014-8-10 10:22
从今以后 发表于 2014-8-7 22:04
貌似是这样,只是声明,无法直接使用,需要再定义才可以,或者直接写成 extern int a = 10;  ...

学习了~~~也没想到声明时候直接赋值




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2