関数の戻り値と+ =演算子を使用すると、私は奇妙な問題を抱えています。関数は非常に単純で、配列からunsigned char値をフェッチする1行です。 =演算子を使用して変数に配置すると、値が正しく出力されます。しかし、+ =を使用すると、その値はガベージになります。ここで符号なしの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];
}
Iがゼロに値を初期化しても問題が解決するだろうと考え出しました。しかし、それはしません。また、リターンを符号なしのshortにキャストしても、それを解決することはできません。
私は 'value 'が' + = 'の前のどこかに割り当てられていると思います。あなたはデバッガを使いましたか? –