빈칸의 위력
류광, 2007/11/15 18:55
빈칸이 코드의 표현력에 미치는 영향을 잘 보여주는 예 하나.
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이니까요.
Trackback Address :: http://occamsrazr.net/tt/trackback/171
- Tracked from kkamagui 프로그래밍 세상 2007/11/16 14:02 DELETE
Subject: 빈칸 하나가 코드를 완전히 다르게 보이게 한다
친구가 류광님의 블로그에서 재미있는 것을 발견해서 보내줬는데, 빈칸의 위력이라는 글입니다(원문은 http://occamsrazr.net/tt/171 에서 보실 수 있습니다 ^^). 아래가 그 빈칸의 위력을 보여주는 코..




