코딩의 삽질 개발과 삽질

개발중의 코드를 약간 단순화 시켜서...

int min = -10000;
int max = -8000;
int val = -7000;
if ( min < val && val < max );
{
      // A 블럭
}

을 실행시켰는데 A 블럭이 실행 되는 문제가 생겨서 한참을 고민 했드랩니다.
0 의 갯수를 잘못 세었나 확인도 하고 음수일때는 대소가 이상해지는 건가,
아님 특정 변수가 unsigned 로 되어있나.

정답은... (소스를 긁어보세요)

PS. 버그를 발견 후 제 표정:


PS2. 위의 상황은 컴파일 옵션 /W3 에서 C4390 경고가 뜹니다. 도대체 누가 /W1 로 해놓은 겨!

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://cloudree.egloos.com/tb/4109159 [도움말]

덧글

  • Red-Dragon 2009/04/07 15:25 # 답글

    그러고보니 제가 C를 학원에서 배울때 뭐 이러저러 저런건 틀리지 않았던거같은데 문제점이
    저는 모든 단어의 앞글자를 대문자로 쓴단 말입니다.(습관) 우아악... ;;;
  • 시즈하 2009/04/07 15:31 # 답글

    전엔 이런것도 있었습니다...

    if (100 <= val < 200) { ... }

    이 경우 val이 어떤 값이어도 조건이 통과해 버리죠...
  • 클랴 2009/04/07 17:03 #

    그건 C4804 ... /W3 쵝오... ㅠㅠ
  • 슈나 2009/04/07 16:04 # 답글

    ;;;; <- 이것이 문제군요...
  • 게드 2009/04/07 17:40 # 답글

    ..;;; 습관적인 ';'는 VB에서도 오류를 띄우죠.. -ㅅ-;
  • 별자리점 2009/04/07 20:01 # 답글

    비슷한 유형으론

    for(int i=0;i<10;i++);
    {
    //Blocks

    }

    가 있지요(..........)
  • 클랴 2009/04/07 20:57 #

    바로 그것 땜시 몇일전에도 한참을 헤맸습니다. ㅠㅠ
  • 하이얼레인 2009/04/07 20:32 # 답글

    얼마나 걸리셨나요(.............)
  • 클랴 2009/04/07 20:58 #

    1시간 쯤?
  • Shirou君 2009/04/09 23:53 # 답글

    JSP 짜다가 저도 저런 적 있습죠.
    그리고 ORACLE 에서 자료 다 입력해놓고 COMMIT 안해서 날린 적도 있고요.[어이]
  • 클랴 2009/04/10 10:26 #

    BEGIN TRANSACTION 하면 자동으로 ROLLBACK 이 입력되는 에디터에서 작업하세요. (어이)
  • Shirou君 2009/04/10 22:25 #

    커밋을 안한건 기억상실이라고 하면...
    롤백은 1종 반납이니 더 무서운 것 아닙니까아;ㅅ;
  • 클랴 2009/04/11 15:01 #

    잘못된 데이터가 들어가는 것보단 낫지요..
    rollback 하기전에 잘 들어갔나, 다른 오류는 없나 확인후
    commit으로 수정해서 또 실행하는 습관이 좋다고 하더군요.
  • SeaBlue 2009/04/12 20:49 # 답글

    저는 JAVA하고 C# 밖에 모르는지라 위의 상황이 이해가 안 가는 T.T
  • 클랴 2009/04/13 10:12 #

    java 나 c# 에서도 if ( true ) ; { ... } 는 여전히 버그일텐데요..
    혹시 rollback/commit 말씀 이신지?
덧글 입력 영역


여러가지 알림 목록

MSN 등록 환영 합니다~
cloudree@hotmail.com






2MB 시계








Scouter for 클랴의 베이킹파우더

Join the FON
Join the FON movement!