A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

有两个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;
复制代码

1 个回复

正序浏览
求解答~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马