최근에 일어난 나의 바보같은 짓에 대해서 글을 써보고자 한다..

많은 사람들은 아래와 같은 코드 때문에 머리카락이 빠지는 경우가 있다.

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값만 들어가야 한다는 제한을 두는 것도 저런 이유일 듯 싶기도 하다 ㄱ-
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2006/07/31 14:35 2006/07/31 14:35

트랙백 주소 :: http://dcple.com/blog/trackback/131

댓글을 달아 주세요

  1. 공감 백배입니다.

  2. 저도 if (tmp = 2) 이것때문에 고생한적이 있습니다 ㅋㅋ

[로그인][오픈아이디란?]