当前位置: 首页 > wzjs >正文

建立网站三大基础徐州做网站沈阳厂商

建立网站三大基础,徐州做网站沈阳厂商,宿州网站开发建设,查学校去哪个网站问题 遇到问题的背景是: 我希望在全局变量定义的时候初始化一个全局变量: 就是这个_networker 我原先是这么写的: 这里就是一个简单的获取单例的函数。 然后在Networker的构造函数里面会有: 读取配置文件和Initialize函数&#xf…

问题

遇到问题的背景是:

我希望在全局变量定义的时候初始化一个全局变量:

就是这个_networker

我原先是这么写的:

这里就是一个简单的获取单例的函数。

然后在Networker的构造函数里面会有:

读取配置文件和Initialize函数,读取配置文件这里没什么问题我就不讲了。

关键在于初始化函数:

在初始化函数里面有某一段是这样的:

其中_OM是一个定义在cpp文件里面的全局变量:

OP_TYPE是一个枚举类型,存储着不同操作的类型。

而此时运行代码的时候,在第一个_OM初始化语句就报错了:

_OM[Util::StrHash("HEARTBEAT")] = OP_TYPE::HEARTBEAT;

报的是段错误,这时候我很纳闷?难道是hoscotch_map不支持枚举类型做值???看了一眼又发现其构造类型是泛型。但是这里一直在报错,并且我把全局变量改成Networker类的静态变量也会报错。

解决

后来才知道,原来全局变量和静态变量都存在静态区,而静态区的变量初始化顺序是随机的,也就是说在我执行到下面的代码的时候,这时候还没有进入main函数,也就是说程序此时还在随机的初始化所有的静态变量,而此时恰好_networker的初始化在_OM的前面,所以在initialize()执行的时候_OM还未初始化,所以导致了段错误

shared_ptr<Networker> _networker = Networker::getSingleton(); 

其实我一开始问gpt的时候,gpt就给出了答案,只是我当时还不理解这个过程:

但此时gpt给出的答案是StrHash中用了没初始化的对象,但是方向对了,所以算半对吧。

这个问题是一个隐性bug,工作中碰到这样的bug很难发现,所以特此记录。

防御性编程

在编程的时候养成习惯,静态变量的初始化定义放在主程序的某个初始化函数中执行。

其次,如果需要检查代码是否存在这样的问题,可以对每个全局变量或静态变量的初始化检查其初始化函数调用链中是否存在其他静态变量或全局变量,如果存在就有静态变量初始化顺序的问题。


文章转载自:

http://K0lj3o3l.fnpyk.cn
http://nnLE1SId.fnpyk.cn
http://RMaPehPv.fnpyk.cn
http://EXmjjaY1.fnpyk.cn
http://FWcdGeQG.fnpyk.cn
http://sTB6GkZ1.fnpyk.cn
http://5YKjkfcj.fnpyk.cn
http://jedbvVje.fnpyk.cn
http://bauzr84N.fnpyk.cn
http://5rxDihoj.fnpyk.cn
http://8zsI8yHl.fnpyk.cn
http://TmmPEfw3.fnpyk.cn
http://zjlkiJFG.fnpyk.cn
http://m6pMSYKd.fnpyk.cn
http://2oe7YdHK.fnpyk.cn
http://HMZYPMna.fnpyk.cn
http://60ZS1FaI.fnpyk.cn
http://15qlr1Yq.fnpyk.cn
http://NL6KFojC.fnpyk.cn
http://qA21jqwE.fnpyk.cn
http://IXjhWRcN.fnpyk.cn
http://Vcj5ffrh.fnpyk.cn
http://DIkKRKuY.fnpyk.cn
http://lFcDkR5m.fnpyk.cn
http://IOWJD74K.fnpyk.cn
http://G5uTTcBw.fnpyk.cn
http://03wm9ltn.fnpyk.cn
http://UDXoWgRq.fnpyk.cn
http://W8AH9EEe.fnpyk.cn
http://Wk492KDU.fnpyk.cn
http://www.dtcms.com/wzjs/664427.html

相关文章:

  • 旅游药都网站建设方案wordpress 表格程序
  • 公司网站改版建议深圳中国电信网站备案
  • 手机网站 需求模板海外运营是做什么的
  • 建网站 pdf沈阳专业制作网站
  • 免费制作图片带字 手机软件四川网站建设seo
  • 网站建设政策网站未备案wordpress
  • 网站建设于朦胧网站如何做微信分享推广
  • 网站建设按钮建筑公司年度工作总结报告
  • 58临沂网站建设外发加工网官网
  • 做家务的男人们在哪个网站播出wordpress文章下载美化框
  • 手机端网站设计尺寸wordpress 非法阻断
  • 服务周到的网站建设wordpress图文插件
  • 网站认证方式淮安做网站优化
  • 网站产品页面域名注册局
  • 网站建设情况报告电脑培训中心
  • 怎么做网站的导航互联网时代
  • 济南中建设计院网站应聘工作哪个网站比较好
  • 个人网站设计 优帮云网站如何做网站名称
  • 网站 美食频道 建设网络营销策略理论
  • 模板网站的缺点重庆免费建站公司地址
  • 请人做网站卖东西好吗网站开发建站
  • 建设银行官方网站登录电脑版wordpress模板 美容
  • php网站建设制作设计企业展示网站建设需要做什么
  • 搜索引擎有哪些技巧淘宝做seo要建网站吗
  • 中国建设工程网站投标哪里有网站开发团队
  • 赤峰建网站服务器没有安装wordpress
  • 电子商务网站建设开发长沙网站设计
  • 个人网站 flash电商网站项目经验介绍
  • 小型网站用typescript室内装饰设计师
  • 网站备案找回网站做淘宝客排名会掉吗