C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[71174] Re:이해안되어서요..
civilian [civilian] 4383 읽음    2014-04-09 16:06
timeGetTime()로 얻을 수 있는 값은 DWORD로
이는 0 ~ 2^32 milliseconds 범위입니다.

이 값은 0에서 출발해서 49.71일에 최대값이 된 후 다시 0이 됩니다.
이걸 방지하고자 하는 코드인 것 같군요.

이중 님이 쓰신 글 :
: 안녕하세요? 매번 도움에 감사드립니다.
: 회사에 있는 코드를 보다가 이 함수가 이해가 안되어서요...
: 오버플로우 방지 목적으로 하는거 같은데..눈에 잘 안들어오네요..
: 매개변수에는 시간을TimeGetTime()을 넣습니다..
: 설명 부탁드립니다..감사합니다
:
: unsigned long PreventOverflowGetTimeMs(unsigned long precalc)
: {
:     double tmpPrecalc = (double)precalc;
:     double postcalc = (double)timeGetTime();
:
:     if(tmpPrecalc > postcalc) // 증가시간이므로, 이전에 얻은 시간값보다 향후 얻은 시간값이 작으면 오버플로우된 상태다.
:     {
:         tmpPrecalc = tmpPrecalc - (double)0x100000000;
:     }
:
:     return (unsigned long)(postcalc - tmpPrecalc);
: }

+ -

관련 글 리스트
71173 이해안되어서요.. 이중 4211 2014/04/09
71174     Re:이해안되어서요.. civilian 4383 2014/04/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.