더북(TheBook)

TAKEAWAY 4.17 대부분의 연산자는 피연산자의 평가 순서가 따로 정해져 있지 않다.

이때 순서는 컴파일러마다 다를 수 있고, 같은 컴파일러라도 버전에 따라, 컴파일 옵션에 따라 다를 수도 있으며, 표현식 주변의 코드에 따라 달라질 수도 있다. 따라서 환경마다 순서가 얼마든지 달라질 수 있다는 점을 명심하기 바란다. 그렇지 않으면 매우 고생할 수 있다.

함수 인수에 대해서도 마찬가지다. 예를 들어 다음 문장에 나오는 두 인수 중 어느 것이 먼저 평가될지 알 수 없다.

printf("%g and %g\n", f(a), f(b));

TAKEAWAY 4.18 함수 호출문에서 인수로 주어진 표현식의 평가 순서는 따로 정해져 있지 않다.

산술 표현식에서 부작용을 피하는 가장 확실한 방법은 평가 순서에 의존하지 않는 것이다.

TAKEAWAY 4.19 표현식 안에서 호출되는 함수는 부작용이 없어야 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.