次のタイプの 3 つの変数があります。
uint64_t old_addr, new_addr;
int delta;
そして、私はこの課題をやりたいです
new_addr = old_addr + delta;
ただし、問題は、いつとold_addr=915256にdelta=-6472064なるかです。new_addr18446744069414584325
修正するには、いくつか確認する必要があります。
if ( delta < 0 ) {
if ( old_addr < abs(delta) )
new_addr = 0;
else
new_addr = old_addr + delta;
}
より良い効率的な方法はありますか?