先上码:
代码1
#include <stdio.h>
#include <stdlib.h>
int max(int x,int y);//这边声明要有“;”这个符号
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int result;
extern int number1;//外部变量声明
extern int number2;//外部变量声明
result=max(number1,number2);
printf("%d",result);
return 0;
}
int number1=10;
int number2=20;
int max(int x,int y)
{
return (x>y?x:y);//return后面也要有";"
}
//第一个错误是int max(int x,int y);//结尾以分号结束。
//第二个错误是return (x>y?x:y);//结尾以分号结束。
//extern的用法,
输出结果:
?
?函数内的变量为此函数的局部变量,反之函数外部的为源文件的全局变量。
全局变量的作用域是,定义开始位置到程序的结束,有这么一种情况就像代码1这种情况,就可以用extern来解决。
注意:
1.extern的使用位置。
2.extern关键字只是用于“声明”变量,就像这个就是错了//extern int a=5;//赋值了错误了
3.extern的存在就是为了扩展全局变量的作用域,作用域扩展到从声明开始到本文件结束。
部分2?
一个工程中通常有多个源文件组成,如果一个源文件中定义了全局变量,想在另一个源文件中使用extern来声明,声明之后就可以使用了。
一般会这样,有一个.h文件,
#include "led_light_control.h"//声明中包含了extern void vad_light_on(void);
然后在
你想用的源文件中例如“user_msg_deal.c”文件中直接使用即可。
vad_light_on(void);//user_msg_deal.c
|