关于extern的几道题目
题目1:为什么变量i编译错,请指出以下解释有什么不妥之处:
对于extern声明的全局变量,声明之后,只会在整个exe中保留一份,
a.cpp包含了a.h,即告诉了 a模块变量i是来自外部模块。 同理:在main模块中,
变量i告诉了main模块,变量i来自外部模块。 对于函数fun也是同样解释。
代码:
a.h
extern
int i;
extern
void fun();
a.cpp
#include "stdafx.h"
#include "a.h"
void fun()
{
i++;
}
main.cpp
int main()
{
extern
void fun();
extern
int i;
i=2;
fun();
return
0;
}
题目2:
把a.h 中的 extern
int i; 改成:int i, 为什么编译没有错误。请指出原因。
|