extern int a; //声明了一个变量 a
int a; //定义了一个变量a
extern int a=0; //定义并赋值了一个变量a
int a=0; //定义并赋值了一个变量a
第三行和第四行意思相同,但是第三行可以出现在多个文件的多处,而第四行只可以出现在一处,当你要引用一个全部变量的时候,就要使用 extern int a,其中的extern不可以省略。如果省略就是定义一个变量。
addtwonum.c 文件代码:
#include <stdio.h>
/*外部变量声明*/
extern int x ;
extern int y ;
int addtwonum()
{
return x+y;
}
test.c 文件代码:
#include <stdio.h>
/*定义两个全局变量*/
int x=1;
int y=2;
int addtwonum();
int main(void)
{
int result;
result = addtwonum();
printf("result 为: %d\n",result);
return 0;
}
此处的text.c文件中并没有对addtwonum()函数作出声明,是因为编译器会在链接阶段将addtwonum.c的文件的代码与text.c文件的代码进行链接,从而确保调用addtwonum()函数时能够正确执行。
当然了,也可以声明此函数方法。如下:
addtwonum.c文件代码如下:
#include <stdio.h>
/*外部变量声明*/
extern int x ;
extern int y ;
extern int addtwonum(); // 添加extern声明
int addtwonum()
{
return x + y;
}
test.c文件代码如下:
#include <stdio.h>
/*定义两个全局变量*/
int x = 1;
int y = 2;
extern int addtwonum(); // 添加extern声明
int main(void)
{
int result;
result = addtwonum();
printf("result 为: %d\n", result);
return 0;
}