빈칸의 위력
빈칸이 코드의 표현력에 미치는 영향을 잘 보여주는 예 하나.
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이니까요.
예전 댓글(읽기 전용)
-
나무늘보, 2007-11-17 11:11 :
-
와.. 이거정말 기발하네요 ㅋ_ㅋ) 제 마음에도 쏙 드는 코드입니다 :)
-
0도 포함이라는 느낌도 드네요
count > 0인데
count >= 0 로 보일소지가 있네요 ^^
-
후증가이므로 count >= 0 입니다 :)
하하,, 기발하네요^^