--변수; 를 했는데 2가 감소하네요..;왜이럴까요?

  • sgc109
    sgc109

    제대로된 코드인 것 같은데 자꾸 결과가 잘못나와서

    디버깅을 해봤습니다. 그런데 이 부분에서

    height = min(height, fences[--lo]);

    lo 라는 변수가 1이 감소하고 fences 배열에서도 1작은 인덱스의
    값을 반환해야 할 것으로 예상했는데 값자기 lo 가 3 에서 1로 줄어들었고 fences[1] 의 값이 참조되었습니다.

    (참고로 min(a,b) 는 매크로로 a<b?a:b )

    비주얼 스튜디오2013 을 사용했고 --lo 값을 lo 로 바꾸고 윗 줄에
    lo--; 를 넣었더니 정상적인 값이 나왔습니다..

    제가 모르는 무언가가 있는건가요?? 아니면 버그.. 는 아니겠죠?


    9년 전
3개의 댓글이 있습니다.
  • JongMan
    JongMan

    답을 말씀하셨네요. 매크로이기 때문에 해당 코드가

    height = (height < fences[--lo] ? height : fences[--lo]);
    

    로 expand 됩니다. ㅎㅎ


    9년 전 link
  • reedong
    reedong

    fences[--io]가 값에따라 매크로에서 두번 사용될 때가 있겠네요


    9년 전 link
  • sgc109
    sgc109

    와...이럴수가있군요. 생각지도 못했네요 ㅎㅎ 감사합니다!!


    9년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.