이번에는, 윈도우 시스템이 부팅된 후, TickCount 를 1 초에 1000 번씩 증가시키는데, 이를 이용하여 시간을 재는 예제를 설명드리겠습니다.


#include <stdio.h>
#include <windows.h>

int main(int argc, char* argv[]){
	DWORD startTickCount = GetTickCount();
	DWORD currentTickCount;
	for ( ; ; ){
		currentTickCount = GetTickCount();
		printf("현재 틱 카운트 : %lu\n", currentTickCount);
		if (currentTickCount - startTickCount >= 1000){
			printf("1 초 지나서 프로그램 종료\n");
			break;
		}
	}
	return 0;
}


5 라인

GetTickCount 함수를 이용해서 시작 지점의 틱 카운트를 저장합니다.


7 라인

무한 루프를 돕니다.


8 라인

계속해서 현재 틱 카운트를 받아와서 저장합니다.


9 라인

현재 틱 카운트를 출력합니다. (DWORD 형 = unsigned long 형 -> %lu)


10 ~ 12 라인

현재 틱 카운트와 시작 지점의 틱 카운트의 차이가 1000 이상이 되면 (간격이 1 초 이상이 되면) 무한 루프를 빠져 나가고 프로그램을 종료합니다. (1 TickCount 는 1 밀리 세컨드와 간격이 같다고 생각하면 됩니다.) 이를 활용하여 원하는 특정 구간의 시간을 잴 수 있습니다.


[실행 결과]




(GetTickCount 함수 설명 참고)

https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms724408(v=vs.85).aspx

by kkikkodev 2015. 5. 17. 01:29