首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

关于makefile里边 两个源文件之间 使用全局变量的疑惑

2012-10-31 
关于makefile里面 两个源文件之间 使用全局变量的疑惑C语言基础不牢固,请教各位一下:我的makefile工程里面

关于makefile里面 两个源文件之间 使用全局变量的疑惑
C语言基础不牢固,请教各位一下:我的makefile工程里面链接有多个源文件,其中两个文件,假设是1.c 跟 2.c吧。如果我在1.c里面定义了一个全局变量 int a; 并且我想在2.c里面使用它,那么按说应该是用关键字extern吧,这样才是对应的同一个内存里面的变量吧。
  但是我发现如果在2.c里面不用extern,而是同样int a;结果是一样的,就是说我在2.c里面操作a,1.c里面的a也是跟着改变的。这是为什么?
  更奇怪的是,如果两个文件都用extern,而没有定义的话,结果还是一样的。

  简单代码如下:
1.c :
  int a;
  a++;

2.c :
  int a;
  printf(" %u ",a);

打印结果a是1;

能否深入的给我讲解一下是什么原理?

[解决办法]
最好能贴出完整的代码和makefile,仅从你的描述来看,这个程序应该是要链接错误的。
[解决办法]
你的程序是不可能通过的,链接阶段一定报重复定义。
[解决办法]
你确定两个都是全局变量啊.

热点排行