빈칸의 위력

Twitter icon류광, 2007-11-15 18:11
빈칸이 코드의 표현력에 미치는 영향을 잘 보여주는 예 하나.

evil c에서 본 코드 조각 하나:

void doStuff(int count) {
    while(count --> 0) 
        fleh();
}

count-- > 0의 빈칸을 적절히 배치해서 '좌변은 우변에 도달할 때까지 변한다'라는 의미구조를 가진 새로운 --> 연산자(?)를 만들어 낸 셈입니다.

출처의 저자는 '사용하지 않는 것이 좋다'는 취지로 제시한 것이지만 저는 상당히 마음에 듭니다 :)

count의 초기 값이 N이라 할 때 루프 본문 안에서 count가 N에서 0까지나 N에서 1까지가 아니라 N-1에서 0까지 변한다는 점이 좀 직관적이지 않게 느껴질 수도 있겠지만, 위의 예처럼 루프 변수를 '반복 횟수' 용으로만 사용하는 경우에는 문제가 되지 않습니다. 더욱 중요한 것은, 루프 변수를 배열의 색인으로 사용하는 경우에는 N-1에서 0까지가 유일하게(물론 루프 변수를 '감소'하는 경우에서) 올바른 방식입니다. C, C++에서 크기가 N인 배열의 유효한 색인은 0~N-1이니까요.

태그: 프로그래밍 C++

comments powered by Disqus

예전 댓글(읽기 전용)