코드 분석이 잘못된 이유는 무엇입니까?

사용자

출력이 "4 60"이 아니라 "0 -6"인 이유는 무엇입니까? k = 8, l = 2가 아닌가요?

#define MAC(a,b) (a<b ? a*b:a-b)
void main (void)
{
   int i=2;
   int j=4;
   int k=MAC(i,j);
   int l=MAC(j,i);
   i=MAC(k+l,k-l);
   j=MAC(k-l,k+l);
   printf("%d %d\n", i,j);
}
팍스 디아블로

즉각적인 문제입니다. 표현식

MAC(k+l,k-l)

된다

(k+l<k-l ? k+l*k-l:k+l-k-l)
           ^^^^^^^

그리고 밑줄이 그어진 비트에서 볼 수 있듯이 표현식은 우선 순위 규칙 (곱하기 전에 더하기 전에 수행됨)으로 인해 생각하는 것과 다릅니다.

매크로의 각 인수를 괄호로 묶으면이 문제를 해결할 수 있습니다.

#define MAC(a,b) ((a)<(b) ? (a)*(b):(a)-(b))

그러나 n++여러 번 증가하므로 같은 것을 전달하면 여전히 도움이되지 않습니다 .

매크로는 매우 간단한 텍스트 대체이며보고있는 것과 같은 문제를 일으키는 것으로 잘 알려져 있습니다. 내 조언은 MAC다음과 같이 문제를 완전히 피할 수있는 적절한 기능 으로 바꾸는 것입니다.

int mac (int a, int b) {
    if (a < b)
        return a * b;
    return a - b;
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

출력이 잘못된 유니 코드 인 이유는 무엇입니까?

분류에서Dev

다음 코드가 잘못된 이유는 무엇입니까? 이항 계수

분류에서Dev

Xcode가 잘못된 코드를 생성하는 이유는 무엇입니까?

분류에서Dev

다음 Python 코드가 잘못된 이유는 무엇입니까?

분류에서Dev

이 코드에서 '잘못된 오프셋 유형'오류가 발생하는 이유는 무엇입니까?

분류에서Dev

이 코드가 잘못된 이유는 무엇입니까? '반복'은 어떻게 작동합니까?

분류에서Dev

이것이 잘못된 이유는 무엇입니까? (코드 평가 도전) PYTHON

분류에서Dev

이 Javascript 코드에서 잘못된 출력이 발생한 이유는 무엇입니까?

분류에서Dev

java-readAllBytes가 잘못된 바이트 코드를 반환하는 이유는 무엇입니까?

분류에서Dev

이 코드가 잘못된 포인터를 일으키는 이유는 무엇입니까?

분류에서Dev

코드를 추적하는 동안 내가 취하는 경로가 잘못된 이유는 무엇입니까?

분류에서Dev

다운로드 한 이미지가 잘못된 이유는 무엇입니까?

분류에서Dev

내 코드의 LINQ 메서드`Where`가 string []에 대해 잘못된 이유는 무엇입니까?

분류에서Dev

이 React 반환 코드가 잘못된 이유는 무엇입니까? (조건부 렌더링)

분류에서Dev

C ASCII에 대한 난수,이 코드가 잘못된 이유는 무엇입니까?

분류에서Dev

내 KnockKnock 농담이 여기에 잘못된 이유는 무엇입니까 (Java 네트워킹 코드)?

분류에서Dev

잘못된 피드백을 계속받는 이유는 무엇입니까?

분류에서Dev

내 코드에서 웹 요소 값에 대해 잘못된 출력을 얻는 이유는 무엇입니까?

분류에서Dev

내 코드가 잘못된 값을 반환하는 이유는 무엇입니까?

분류에서Dev

내 코드가 변수에 대해 잘못된 값을 제공하는 이유는 무엇입니까?

분류에서Dev

이메일이 잘못 전달 된 이유를 분석하는 방법은 무엇입니까?

분류에서Dev

두 번째로 누르면 키 코드가 아닌 키 코드의 잘못된 값이 반환되는 이유는 무엇입니까?

분류에서Dev

이 JSON이 잘못된 이유는 무엇입니까?

분류에서Dev

이 GeoJSON 파일이 잘못된 이유는 무엇입니까?

분류에서Dev

이 진술이 잘못된 이유는 무엇입니까?

분류에서Dev

System.out.prinln이 잘못된 이유는 무엇입니까?

분류에서Dev

내지도 값이 잘못된 이유는 무엇입니까?

분류에서Dev

잘못된 날짜 문자열을 구문 분석 할 수있는 이유는 무엇입니까?

분류에서Dev

4 개 div를 만드는 루프 기능이 잘못된 이유는 무엇입니까?

Related 관련 기사

  1. 1

    출력이 잘못된 유니 코드 인 이유는 무엇입니까?

  2. 2

    다음 코드가 잘못된 이유는 무엇입니까? 이항 계수

  3. 3

    Xcode가 잘못된 코드를 생성하는 이유는 무엇입니까?

  4. 4

    다음 Python 코드가 잘못된 이유는 무엇입니까?

  5. 5

    이 코드에서 '잘못된 오프셋 유형'오류가 발생하는 이유는 무엇입니까?

  6. 6

    이 코드가 잘못된 이유는 무엇입니까? '반복'은 어떻게 작동합니까?

  7. 7

    이것이 잘못된 이유는 무엇입니까? (코드 평가 도전) PYTHON

  8. 8

    이 Javascript 코드에서 잘못된 출력이 발생한 이유는 무엇입니까?

  9. 9

    java-readAllBytes가 잘못된 바이트 코드를 반환하는 이유는 무엇입니까?

  10. 10

    이 코드가 잘못된 포인터를 일으키는 이유는 무엇입니까?

  11. 11

    코드를 추적하는 동안 내가 취하는 경로가 잘못된 이유는 무엇입니까?

  12. 12

    다운로드 한 이미지가 잘못된 이유는 무엇입니까?

  13. 13

    내 코드의 LINQ 메서드`Where`가 string []에 대해 잘못된 이유는 무엇입니까?

  14. 14

    이 React 반환 코드가 잘못된 이유는 무엇입니까? (조건부 렌더링)

  15. 15

    C ASCII에 대한 난수,이 코드가 잘못된 이유는 무엇입니까?

  16. 16

    내 KnockKnock 농담이 여기에 잘못된 이유는 무엇입니까 (Java 네트워킹 코드)?

  17. 17

    잘못된 피드백을 계속받는 이유는 무엇입니까?

  18. 18

    내 코드에서 웹 요소 값에 대해 잘못된 출력을 얻는 이유는 무엇입니까?

  19. 19

    내 코드가 잘못된 값을 반환하는 이유는 무엇입니까?

  20. 20

    내 코드가 변수에 대해 잘못된 값을 제공하는 이유는 무엇입니까?

  21. 21

    이메일이 잘못 전달 된 이유를 분석하는 방법은 무엇입니까?

  22. 22

    두 번째로 누르면 키 코드가 아닌 키 코드의 잘못된 값이 반환되는 이유는 무엇입니까?

  23. 23

    이 JSON이 잘못된 이유는 무엇입니까?

  24. 24

    이 GeoJSON 파일이 잘못된 이유는 무엇입니까?

  25. 25

    이 진술이 잘못된 이유는 무엇입니까?

  26. 26

    System.out.prinln이 잘못된 이유는 무엇입니까?

  27. 27

    내지도 값이 잘못된 이유는 무엇입니까?

  28. 28

    잘못된 날짜 문자열을 구문 분석 할 수있는 이유는 무엇입니까?

  29. 29

    4 개 div를 만드는 루프 기능이 잘못된 이유는 무엇입니까?

뜨겁다태그

보관