0

次のコードがあります。

while( int()(uStartFrame - iFrameOffset) < 1)
{
    iFrameOffset--;
}

uStartFrame と iFrameOffset はどちらも unsigned long なので、< 文は少し難しいと思います。しかし、int()を使用して修正したと思いました。しかし、ループは無限に実行されるため、機能しないと思います。

誰か助けてくれませんか?

ありがとうございました!

4

3 に答える 3

0

テスト (uStartFrame-iFrameOffset) を iFrameOffset ではなく int にキャストしています。そのため、iFrameOffset が大きい場合 (システムによっては最大 2^64-1 またはそれ以上)、最後に到達するには 2^64 ループが必要になる場合があります。

これは、ギガ秒にもなる可能性があります。したがって、このループを再考する必要があります。それは良い考えではありません。

于 2014-01-08T12:59:35.780 に答える