2014-01-18 4 views
0

오버 헤드 할당 대 문 비교 오버 헤드이 (here) : 나는 궁금만약 내가 몇 가지 코드를 공부하고 발견 된

void ass_set_margins(ASS_Renderer *priv, int t, int b, int l, int r) 
{ 
    if (priv->settings.left_margin != l || priv->settings.right_margin != r || 
     priv->settings.top_margin != t || priv->settings.bottom_margin != b) { 
     priv->settings.left_margin = l; 
     priv->settings.right_margin = r; 
     priv->settings.top_margin = t; 
     priv->settings.bottom_margin = b; 
     ass_reconfigure(priv); 
    } 
} 

는 이유 중 하나가 다른 경우 때문에, 먼저 값을 확인 할 필요가있다 전달 된 인수에서 모든 값을 전달 된 인수로 지정합니다. 확인없이 모두 통과하면 어떨까요? 코드가 적고 오버 헤드가 적습니까?

상태를 변경하기위한 오버 헤드가 검사하는 것 이상입니까?

답변

3

단지 할당보다 더있다 :

ass_reconfigure(priv); 

그래서 조건이 어쨌든 확인해야합니다.

어쨌든 지점을 수행해야하는 경우 동일한 조건에서 필요한 할당 만 이동하십시오. 그것은 확실히 일부 라인 코드를 저장하고 하나 또는 두 개의 실행 된 명령어를 저장할 수도 있습니다.

+0

오, 나는 그것을 눈이 멀게하는 장님과 같았다. 감사! –

관련 문제