a=1printf(" %d %d %d ", a++, a++, a++);3 2 1 한줄씩 출력하면 1 2 3 이 맞지만저렇게 하면 거꾸로 출력되는데 함수호출규약으로 출력된 값으로 보면 가장 우측인자부터 스택에 저장되서 사용하는데 이해가 안된다추가로 이거도 모르겠따 아는사람 헬프미printf(" %d %d %d ", ++a, ++a, ++a);4 4 4
우측 인자부터 스택에 집어넣는다는게 이해가 안된다는 말인가요
우측부터 인자 push 한다는건 진리다 cdecl 호출 규약 보면 나온다 찾아보셈
이런 문제 찾아봤는데 좀 많이 심오한 문제인듯함 좀 뒤적거려보니 함수의 인자 처리 순서는 컴파일러마다 다르며, 저런 문제가 생기는 이유는 function call 에서의 연산자 우선순위에 대한 정확한 표준같은게 없어서 그렇다네
그니깐 요약은 앞서말했듯이 undefined 임. 걍 컴파일러 좃대로 니 좃 내좃 대로 하는거임
이딴걸로니시간축내새요