关于extern的具体的用法。
关于extern的用法我查找了一些资料,但是感觉还不是很理解。【extern int temp;只是说明temp是一个外部变量,此时并没有定义它,而实际上外部也没有定义,所以编译时提示出错。
extern int temp=0;说明temp是一个外部变量,同时定义了temp为int并初始化,(声明不能初始化)。 】
按照这种理解,下列程序应该运行正确,然而却不然,
程序代码:
#include<stdio.h> #include<stdlib.h> void test() { extern int i=0; } void main() { test(); system("pause"); }
如果说extern int i 是为了声明变量为外部,此处没有定义,需要外部寻找,那下面的程序为什么运行出错?
程序代码:
#include<stdio.h> #include<stdlib.h> void test() { extern int i; i = 0; } void main() { int i; test(); system("pause"); }还有这个,也是出错的:
程序代码:
void test() { extern int i; int i = 0; } void main() { test(); system("pause"); }只有这个是正确的:
程序代码:
#include<stdio.h> #include<stdlib.h> void test() { extern int i; } void main() { test(); int i = 0; system("pause"); }是不是说,extern声明的变量只能在外部使用,而在本函数块不能使用?
还是说extern有其他的一些限制?
能不能具体说说extern的具体的用法?