extern变量是如何定义的?
这个问题在这里已经有了答案:
extern int i
...是一个变量声明,因为它只告诉编译器“存在一个名为i
的变量,但它定义在其他地方”。
int i
...是一个变量定义,因为它告诉编译器创建实际变量。
关键字extern
用于声明外部变量,因此该书是正确的。
有一个例外,如果添加了一个初始化程序,那么这是一个定义:
extern int i = 42;
声明:刚声明的变量
Ex: int i;
定义:变量declaration+its initialization
用值declaration+its initialization
。
Ex: int i=10;
在你的情况
extern int i;// is a declaration
//because you did not initialize value to i here.
假设j是全局变量。 那么它在声明时用ZERO初始化。
这里declaration+initialization =definition
int j; //definition
如果j是本地的,那么它只是声明。
链接地址: http://www.djcxy.com/p/40631.html