C++全局变量尽量写在stdafx.cpp中 extern 关键字找不到外部定义就等于新定义

我自己在写程序过程中,遇到了比较奇怪的没有初始化问题。

最后发现,因为一个全局变量A写在main函数所在的cpp中,因为头文件加载先后问题,导致后边某个类B中,使用到这个A时,出现问题,本来预计会拿到A里边某些数据,但竟然什么都是0,好像A刚刚初始化一样。

 

我不知道根本原因是什么,我只知道肯定是extern作怪。

在类B中,用了extern定义A。但因为类B的头文件比main函数在CPP定义全局变量A更早,所以这个extern好像不起作用,VC6也不提示出错,好像默认变成直接声明一样。

 

反正得到的教训就是:

全局变量,写在stdafx.cpp中保险,注意头文件的加载顺序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值