안녕하세요,, 대학교 1학년 전필 과목으로 c언어를 듣고 있는 학생입니다.
수업 내용 중에서 sequence point와 undefined behavior에 대한 내용이 나왔는데,
undefined behavior가 제대로 이해되지 않아 질문드립니다 ㅠㅠ
제가 이해한 바로는 undefined behavior는 컴파일러에 따라서 실행 결과가 다르게 나와
이식성을 떨어뜨리기에 사용하지 않는 편이 좋다는 것인데요,
예를 들어, a = i + i++; 식의 문장에서 후위수식연산자가 우선순위가 가장 높기에 먼저 실행되지만,
i값에 1이 더해지는 side effect는 sequence point 이전까지만 실행되면 될 뿐, 정확한 순서까지는
알 수 없기 때문에 컴파일러에 따라서 a = (i+1) + i이 되거나, a = i + i이 될 수 있다는 것입니다.
(맞나요?ㅠㅠ)
제 교수님께서는 수업에서 후위수식연산자에 대해서만 다루셨는데, 전위수식연산자는 어떤 식으로 처리되는지
궁금합니다..