블로그 이미지
안녕1999

카테고리

전체 (3067)
자바스크립트 (20)
안드로이드 (14)
WebGL (4)
변비 (17)
정치,경제 (35)
C언어,ARM (162)
컴퓨터(PC, Note Book, 윈.. (41)
전자회로, PCB (27)
유머,안웃긴,GIF,동영상 (118)
국부론60 (71)
모듈(PCB) (3)
건강 (2)
FreeCAD (25)
PADS (43)
퇴직,퇴사,구직,취업 활동 (3)
C# (86)
엑셀 (8)
워드 (0)
LabView (6)
레고 (30)
FPGA (0)
Total
Today
Yesterday

while(len--)의 함정

C언어,ARM / 2020. 1. 11. 22:53

while(len--)

{

    ...

}

 

위 코드는 문제가 발생할 소지가 있는 코드입니다.

아래와 같이 사용해야합니다.

while(len)

{

    len--;

    do_somthing(len);

}

 

이유는, while()조건을 검사하고, len=0인 경우에는 while()문의 do_somthing(len);코드를 실행하지 않습니다.

그러나, len의 값은 -1이 된 상태입니다.

len변수가 다른곳에서도 쓰인다면, 0이 아닌 -1값이 되어, 오동작을 할 수 있습니다.

 

요약 : while(), if() 안에서는 ++, --등의 증감 연산자를 사용하지 말자. 

Posted by 안녕1999
, |

최근에 달린 댓글

글 보관함