请问这两个代码中的extern是不一样的吗
第一个代码中extern定义的是变量,所以x.y是全局变量,跟main中的x.y是一样的,所以它们的值也是一样的,结果是5,25。这个我懂了。
但第二个代码中的extern是因为定义的是函数f(),所以x.y.z还是局部变量,所以他们的值不变吗,答案是x=1.y=3.z=2。或者说这个答案是错的x=2.y=3.z=1才是正确答案。
#include <stdio.h>
void num()
{
extern int x,y;int a=15,b=10;
x=a-b;
y=a+b;
}
int x,y;
int main()
{
int a=7,b=5;
x=a+b;
y=a-b;
num();
printf("%d,%d\n",x,y);
return 0;
}
#include <stdio.h>
extern void f(int a,int b);
int main()
{
int x=1,y=3,z=2;
if(x>y)
f(x,y);
else if(y>z)
f(x,z);
else
f(x,z);
printf("x=%d,y=%d,z=%d\n",x,y,z);
return 0;
}
void f(int a,int b)
{
int t;
t=a;
a=b;
b=t;
}