首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

声明与定义的有关问题

2012-11-07 
声明与定义的问题求问#include Pub.hint main(){extern int iNum 0return 0}这样编译不过而#include

声明与定义的问题
求问

#include "Pub.h"

int main()
{
  extern int iNum = 0;  
  return 0;
}
这样编译不过

#include "Pub.h"

extern int iNum = 0;
int main()
{
  return 0;
}
可以编译通过呢?

[解决办法]
extern int iNum = 0; 

告诉编译器iNum是一个external的变量,也就是全局变量。后面的“=0”表明这是一个定义,而不是声明。一个external的变量是不能在非全局的scope中定义的。
[解决办法]
第二种,如果加上初始化,其中的extern被忽略,直接当作定义了一个变量,如果其他文件定义了这个变量,会报重复定义的错误的。
第一种,块作用域中不会忽略extern,不让初始化

热点排行