zoukankan      html  css  js  c++  java
  • VC程序Debug版本和Release版本运行不一致问题

    最近接了公司以前一个网络管理系统的项目,接着做。发现,一些功能Debug版本可以正常运行,而Release版本则报错。调试了几天发现了几个Debug版本与Release不一致的地方。

    1. 对变量的初始化不一致。例如,char字符串匹配,在Debug正常,而Release不行,增加了memset(buf, '\0', sizeof(buf))后正常,切记不要写成buf[0] = '\0'就以为安全初始化了;

    2. 内存分配方式不一致。例如,同一个结构体变量,在Debug版本是sizeof()返回36个字节,而Release版本是34个字节。可通过编译器设置来确定,注意几个选项Project->Settings菜单 a>General -> Microsoft Foundation Classes选项;b>C/C++ -> Category选General ->  Optimizations选项;c>C/C++ -> Category选Code Generation -> Struct member alignment字节对齐选项。

    主要是这两个问题导致Debug版本与Release版本程序结果不一致,在开发时,应该时常切换到Release版本测试。我现在居然还有几个同事发布Debug版本程序,理由是Debug发生了一些莫名其妙的问题解决不了。注意:Release版本肯定比Debug版本好,好的不仅仅是效率,还有安全和稳定。

  • 相关阅读:
    5月13日工作日志(需求规格说明书4.0)
    第十次会议
    5月21日日志
    5月12日工作日志
    关于游戏平衡性——王者荣耀英雄伤害数值参考
    每天一点新东西(1)
    我在都匀做网优(补)
    我在都匀做网优
    不算新的开始
    input的focus事件时,鼠标光标在最后
  • 原文地址:https://www.cnblogs.com/fyhui/p/2539910.html
Copyright © 2011-2022 走看看