gpt4 book ai didi

c++ - Visual Studio 跳过代码 mfc C++

转载 作者:行者123 更新时间:2023-11-28 02:35:46 27 4
gpt4 key购买 nike

我正在尝试编译一个按钮点击时的简单函数

std::string file_name((LPCTSTR)m_file_name);


file_name = "D:\\test_image.bmp";

int width = 0;
_width_glo = 0;
_height_glo = 0;

Mat image_inp;
image_inp = imread(file_name, CV_LOAD_IMAGE_COLOR);

width = image_inp.cols;
TRACE("trace width : %d\r\n", width);

_width_glo = image_inp.cols;
_height_glo = image_inp.rows;

BYTE *inp_value_buf = change_to_BYTE(image_inp);

if(m_data_type_selected == BMP_value)
{
Reverse_top_bottom(inp_value_buf);
}

但是 visual studio 跳过了这条线

int width = 0;
width = image_inp.cols;

并且在运行时不将宽度视为变量,还在 _width_glo 和 _height_glo 中发送垃圾值

知道为什么代码会这样吗?谢谢。

最佳答案

如果您使用发布/优化标志进行编译,很可能 TRACE 没有实现,因此 width 变量被编译器简单地删除,因为它根本没有被使用。

_width_glo_height_glo 中的垃圾值很可能是 Mat 对象 image_inp 的未初始化属性。请注意,未初始化变量的行为是未定义的,并且在 Debug 和 Release 之间通常是不同的(取决于编译器,有些可能会在某些情况下自动用零初始化变量,但在其他情况下则不会)。

关于c++ - Visual Studio 跳过代码 mfc C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27526974/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com