VS中bool值为true(205)的解决方法

本文讲述了在Visual Studio中遇到的一个编程难题,即bool值判断错误。作者在调试代码时发现,即使两个值都为true,判断依然返回false。问题源于VS对函数参数的默认初始化,其中一个true值被初始化为205。解决方案包括使用中间变量或通过双感叹号操作符进行类型转换。此问题提醒开发者注意隐含的类型初始化行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在调试代码的时候,发现一个bool值判断式的返回值一直有问题,明明两个值都是true,但是判断的返回值却是false,一直进不了期望的分支。

if (m_active == active)
{
	// do sth.
}
else
{
	// do sth.
}

后面打断点跟踪,发现其中一个值为true(205),另一个值是true,没有下标,如下图所示:
在这里插入图片描述
在这里插入图片描述

这让我很困惑,查了资料之后发现,这与VS本身的初始化值有关系:
当一个函数的参数返回值是bool的时候,如果将这个函数表达式直接作为参数传递给其他,则使用的是0XCD来初始化它,也就是205。

解决方法:
1. 采用变量进行赋值;
2. 使用!!进行类型转化之后再判断。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值