바보 같은 짓 ㄱ-
프로그래밍 :
2006/07/31 14:35
| 최근에 일어난 나의 바보같은 짓에 대해서 글을 써보고자 한다.. 많은 사람들은 아래와 같은 코드 때문에 머리카락이 빠지는 경우가 있다. if (tmp = 2) 내가 무슨말을 하고자 하는 지 알것이다. 위의 코드는 실제로 if (tmp == 2)를 의도한 코드였는데 대략 대입연산자가 되어서 항상 참이 되는 경우이다.. 그래서 많은 사람들은 저런 실수를 막기 위해서 아래와 같은 코드를 추천한다. if (2 = tmp) 위와 같은 코드는 컴파일 에러를 나타낸다 상수는 l-value가 될수 없기 때문이다. 그래서 원래는 if (2 == tmp)로 해야하는지를 알아차리고 바로 수정을 할수 있다. 이번에 내가 한 삽질은 이와 비슷한 삽질이었다.. 무엇이냐 하면.. if (WM_IME_SETCONTEXT) 이거다... ㄱ- 원래는 if (WM_IME_SETCONTEXT == Message)라고 해야할걸.. 저렇게 해버린 것이다.. 저렇게 해놓고 왜 자꾸 저 if안으로 계속 들어가는지 고민을 했었다.. 아... 앞으로 저런 삽질을 막기 위해서 조건문 안에 들어가는 모든 것을 무조건 if (tmp != 0)과 같은 형식으로 직접 코딩을 하는 습관을 들여야겠다.. ㄱ- 생각해보니 고급언어(C#, java)등의 조건문 안에 무조건 boolean값만 들어가야 한다는 제한을 두는 것도 저런 이유일 듯 싶기도 하다 ㄱ- |





댓글을 달아 주세요
공감 백배입니다.
저도 if (tmp = 2) 이것때문에 고생한적이 있습니다 ㅋㅋ