【发布时间】:2012-04-10 11:57:18
【问题描述】:
在使用函数的返回结果和 += 运算符时,我遇到了一个奇怪的问题。该函数非常简单,一行代码从数组中获取一个 unsigned char 值。当我使用 = 运算符将其放入变量时,该值是正确的。但是,使用 += 时,值会变成垃圾。
这是我的代码:
unsigned short value = 0;
value = this->memory->get(address) << 8; //this will work
value += this->memory->get(address) << 8; //this will set it to 52480 every time
unsigned char Memory::get(unsigned int address)
{
return this->memory[address];
}
我认为将值初始化为零可以解决问题;但是,事实并非如此。此外,将 return 转换为 unsigned short 仍然不能解决它。
【问题讨论】:
-
我想
value被分配到+=之前的某个地方。你有调试器吗?
标签: c++