[求助]《C和指针》学习_1205:有关变量,矛盾还是缺陷?
有以下两个文件max.c和test.c,内容如下:
max.c
#include <stdio.h>
int b = 8;
int max_test(int x, int y)
{
int temp;
x > y? (temp = x) : (temp = y);
return temp;
}
test.c
#include <stdio.h>
#include <string.h>
int a = 5;
int b;
extern int max_test(int x,int y);
int main(void)
{
int ret;
ret = max_test(a, b);
return 0;
}
运行的结果表明(ret为8),在文件test.c里,int b;只是变量的声明,而不是定义(即没有分配内存空间),因为如果是定义的话,它的初始值应该为0,而ret就应该是5,但实际结果ret为8,说明在test.c中的int b;其实等效于extern int b;,但为什么会这样呢?
请大家多多指教!