不是。extern是用来声明用的,不是定义用的。要理解声明和定义的不同。全局变量的作用域一直都是整个程序域,但直接引用只能在同一文件中,跨文件的引用就需要extern这个关键字。它是一个声明,声明并不创建变量,创建变量的行为叫定义。从另一个角度来说,extern可以保证你的程序中对这个变量的引用是唯一的。
怎么样?是不是还是一头雾水?这些概念需要有实际操作的经历才能体会清晰。
怎么样?是不是还是一头雾水?这些概念需要有实际操作的经历才能体会清晰。

重剑无锋,大巧不工
程序代码:#include<stdio.h>
int i=0;
void dec2yyy(int yyy,int source,char* bin)
{
if(source==0) return;
dec2yyy(yyy,source/yyy,bin);
if((source%yyy)<10) bin[i]=(char)(source%yyy+0x30);
else bin[i]=(char)(source%yyy+0x37);
i++;
}
int main(void)
{
char dest[10]={'\0'};
for(int j=1;j<256;j++)
{
if((j&68)==68)
{
dec2yyy(2,j,&dest[0]);
i=0;
printf("(10) is %4d (2) is %s\n",j,&dest[0]);
}
}
printf("\n");
return 0;
}
单单是使用全局变量 也没那么麻烦