变量的定义
char x; //声明且定义变量x
int y = 1; //声明且定义变量y,并且初始化变量y
变量的声明
- 需要建立存储空间的。
char x; //声明且定义变量x
int y = 1; //声明且定义变量y,并且初始化变量y
- 不需要建立存储空间的,通过使用extern关键字声明变量名而不定义它。
extern char x; //仅声明变量x
extern int y = 1; //仅声明变量y
注意:一个变量不能在函数中同时extern和初始化
#include <stdio.h>
int main()
{
extern int a = 10; //全局变量不能在函数中定义
printf("a = %d\n", a);
}
实例1
#include <stdio.h>
//函数外声明并定义全局变量x,y
int x;
int y;
void func1(void)
{
//声明变量x,y
extern int x;
extern int y;
//给变量x,y赋值
x = 1;
y = 2;
//打印输出变量x,y
printf("变量x为:%d\n", x);
printf("变量y为:%d\n", y);
}
int main()
{
func1();
}
实例2
demo1.c文件代码
//另一个文件中声明并定义全局变量x,y
int x;
int y;
main.c文件代码
#include <stdio.h>
void func1(void)
{
//声明变量x,y
extern int x;
extern int y;
//给变量x,y赋值
x = 1;
y = 2;
//打印输出变量x,y
printf("变量x为:%d\n", x);
printf("变量y为:%d\n", y);
}
int main()
{
func1();
}
实例3
demo1.c文件代码
//另一个文件中声明并定义全局变量x,y
int x;
int y;
demo1.h文件代码
#ifndef __DEMO_H_
#define __DEMO_H_
//声明变量x,y
extern int x;
extern int y;
#endif // __DEMO_H_
main.c文件代码
#include <stdio.h>
#include "demo.h" //引用头文件
void func1(void)
{
x = 1;
y = 2;
//打印输出变量x,y
printf("变量x为:%d\n", x);
printf("变量y为:%d\n", y);
}
int main()
{
func1();
}