8
나는 가수와 부호없는 값을 비교해야하는 시점에 도착했습니다. 지금까지이 상황을 완전히 피하기 위해 코드베이스를 수정했지만 지금은 그렇게 할 수 없습니다.부호있는 값과 부호없는 값의 비교를 올바르게 처리하기
그래서 노래 및 서명되지 않은 비교를 처리하는 데 실제로 적절한 방법은 무엇입니까? 이것은 혼합 된 C/C++ 코드 기반이므로 제 질문은 두 언어 모두에 적용됩니다.
요청한 값 (서명되지 않은)에 대해 리소스 (서명 됨)를 확인하고 있습니다.
if (requested > (unsigned)INT_MAX) bail_out(); // assert,abort,throw,return....
if ((signed)requested > resource.max) return Never;
if ((signed)requested > resource.free - resource.assigned) return NotNow;
return Now;
내가 올바르게 접근하고 있는가, 또는 더 좋은 방법이있다 :
if (requested > resource.max) return Never;
if (requested > resource.free - resource.assigned) return NotNow;
return Now;
나는이 (해당 변형 ++ 대체 C)처럼 뭔가에 대해 생각했다?
당신은 출발점으로이 한 줄의 코드를 사용할 수 있습니다
리소스 개수가 처음으로 서명되는 이유는 무엇입니까? –
'resource.free
또는 OP가 서명 된 것으로 취급하고자하는 값이기 때문에 서명되지 않은 이유는 무엇입니까? 어쨌든이 접근법은 나에게 좋을 것 같다. 이런 종류의 물건들은 너무 지루해서 나는 서명되지 않은 타입들을 완전히 피하는 경향이있다. – jahhaj