黑马程序员技术交流社区

标题: 两个文件,定义了一个相同的全局变量,会编译成功么 [打印本页]

作者: 蒲公英的方向    时间: 2016-3-8 17:02
标题: 两个文件,定义了一个相同的全局变量,会编译成功么
有两个C文件,一个叫main.c,一个叫xxs.c,main.c 包含了xxs.c.  
我在两个文件里都声明了int num,编译的时候报错误,
错误信息是clang: error: linker command failed with exit code 1 (use -v to see invocation)
删除掉一个int num就好了。
问题是我看老师讲的视频里说,这种情况下两个文件里的全局变量会指向同一块内存空间,并且老师演示的时候也是可以正常编译的,为什么我的编译不过去,错在哪里了?
  1. //  main.c
  2. #include <stdio.h>
  3. #include "xxs.h"
  4. int num;
  5. int main(int argc, const char * argv[]) {
  6.     printf("num = %p\n",&num);
  7.     return 0;
  8. }
复制代码

  1. //  xxs.c
  2. #include "xxs.h"
  3. int num;
复制代码






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