布尔返回 24
bool returning 24
我正在C++中创建一个库,并且有一个总是假的布尔值,但是当我从另一个项目打印它时,它是24。
库代码
void Window::update() {
closeRequested = false;
}
其他项目
int main(int argc, char **argv) {
init();
wnd = new Window();
while (1 == 1) {
wnd->update();
std::cout << wnd->closeRequested << std::endl;
}
wnd->~Window();
end();
return 0;
}
在C++中,布尔变量返回true
的1
,false
的0
,总是。您获得不同值的事实意味着内存损坏,或者您没有获得布尔值。
我的投票是第二个。如果对象的定义在两个不同的源文件中不同,则对象的内存布局可能会更改,并且您将获得与写入的值不对应的对象部分。
对象布局中的不匹配可能以不同的方式引起。一些常见的:
- 两个源文件之间的不同结构填充设置。
- 不同的 typedefs 或
#define
宏导致成员的不同类型。 - 在一个源与另一个源中计算不同的条件宏。
相关文章:
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- 如何使用返回布尔值的函数?
- 返回布尔值在 cocos2dx 的 onTouchBegan() 中是什么意思?
- 它如何返回布尔结果?
- 在开关情况下返回布尔值
- 让二传手返回布尔值是好习惯吗?
- 从 lambda 表达式返回布尔值时出错
- for_each不返回(布尔)值
- 在 if 语句中返回布尔值的 lambda 表达式
- Windows HANDLE RAII 管理,如果返回布尔值而不是句柄怎么办?
- 为什么Lambda返回布尔
- 递归函数返回布尔
- 读者班级游戏板:正确返回布尔值
- 试图返回布尔值时,程序崩溃
- 如何使用 boost::bind 将返回 int 的函数转换为返回布尔值的函数
- 返回布尔值的函数的命名约定是什么
- 返回布尔函数中的true或某物
- 返回布尔函数
- 函数返回布尔值,只设置整个寄存器的1个字节
- 返回布尔值时,为什么要使用"!!