博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VS2010 自动跳过代码现象
阅读量:5079 次
发布时间:2019-06-12

本文共 565 字,大约阅读时间需要 1 分钟。

今日,发现在Release的调试模式下,VS2010会“莫名其妙”的跳过一些代码不执行.

经实验,初步判断可能的原因:预处理器指令或编译器/连接器优化。

20150703更新:

部分代码:

  m_pTameAtomicClock = new TAC::CTameAtomicClock;  CString TameAtomicClockPath = GetCurDir() + "\TAC";  int ErrorCode = m_pTameAtomicClock->InitDocile(Port, TameAtomicClockPath);    if (!(0 == ErrorCode))//if内条件不执行    {      return ErrorCode;//直接执行这一步    }

 

  经实验判断,或许是因为名字空间的问题(不确定),编译器把关于变量ErrorCode直接相关的代码都优化掉了。

  在ErrorCode前加volatile 关键字就好了(难道编译器认为这个变量不会被本程序改变?)。

  具体本质原因,还需要资料支撑,正在寻找中。

——ZXF_2015-07-02 10:59:04

转载于:https://www.cnblogs.com/weiweisuhe/p/4582425.html

你可能感兴趣的文章
用C语言操纵Mysql
查看>>
轻松学MVC4.0–6 MVC的执行流程
查看>>
redis集群如何清理前缀相同的key
查看>>
Python 集合(Set)、字典(Dictionary)
查看>>
获取元素
查看>>
proxy写监听方法,实现响应式
查看>>
第一阶段冲刺06
查看>>
十个免费的 Web 压力测试工具
查看>>
EOS生产区块:解析插件producer_plugin
查看>>
mysql重置密码
查看>>
jQuery轮 播的封装
查看>>
一天一道算法题--5.30---递归
查看>>
JS取得绝对路径
查看>>
排球积分程序(三)——模型类的设计
查看>>
python numpy sum函数用法
查看>>
php变量什么情况下加大括号{}
查看>>
linux程序设计---序
查看>>
【字符串入门专题1】hdu3613 【一个悲伤的exkmp】
查看>>
C# Linq获取两个List或数组的差集交集
查看>>
HDU 4635 Strongly connected
查看>>