| |
在声明的程序段中,main函数不能访问变量y,因为它是在main函数的后面声明的,通过使用存储类型extern来声明变量,就可以解决这个问题。
main()
{
extern int y;
......
}
func1()
{
extern int y;
......
}
int y;
尽管变量y声明在两个函数之后,函数中y的外部声明语句告诉编译器,y是一个整数,是在程序的其他地方声明的。注意,extern声明语句并不会给变量分配存储空间。如果要声明数组,在定义语句还应该包括数组的大小。
例如:
main()
{
int i;
void printf_out(void);
extern float height[];
......
printf_out();
}
void printf_out(void)
{
extern float height[];
int i;
......
}
float height[size];
函数中的extern关键字知识为本函数提供类型信息。通过把外部声明放在所有函数之前,就可以为所有函数提供类型信息。
例如:
extern float height[main()
{
int i;
void printf_out(void);
extern float height[];
......
printf_out();
}
void printf_out(void)
{
int i;
......
}
float height[size];
定义与声明之间的不同同样可应用于函数。当指定了函数参加和函数体时,也就定义了函数。它告诉编译器,为函数代码分配存储空间,为参数提供类型信息。由于默认情况下函数是外部的,因此声明函数时不需要加修饰符extern。这样,声明语句:
void printf_out(void);
就等价于:
extern void printf_out(void);
位于所有函数之外的函数声明与变量声明作用相同。
凌阳教育,全国唯一一家原厂式嵌入式培训机构,专业从事嵌入式人才培训13年,最近新开课程信息安全工程师培训,想了解更多嵌入式资料下载或者是凌阳教育的动态,请访问凌阳教育官网www.sunplusedu.com