• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

clock()함수가 나왔는데요...

19.10.07 22:39 작성 조회수 176

0

clock 함수에서 초를 구하는 개념이 잘 안잡힌것 같아요...

이해하기 쉽게 설명 해주실 수 있나요...?

답변 1

답변을 작성해보세요.

3

안녕하세요!

시간을 잴 때 현재 시간에서 기준 시간을 빼서 측정을 하게 됩니다. startTime 은 그 기준시간이 됩니다. 예를 들어 3시 50분이 현재 시간이고 기준 시간이 3시 48분이면 2분이 흐른 것이겠지만, 기준 시간이 없다면 흐른 시간을 계산할 수가 없겠죠.

추가 설명으로 clock() 을 실행하면 프로그램 실행 시점에서부터 현재까지 흐른 시간 정보를 알 수 있는데 우리 예제는 작은 프로그램이라서 워낙 빨리 수행되므로 startTime 이 0으로 표시될 수도 있겠습니다. 하지만 보다 연산을 많이 필요로 하는 프로그램이나, 사용자의 키보드 입력 이후 시점부터 게임이 시작된다면 startTime 을 명시적으로 설정해야 정확한 시간이 측정된답니다. 테스트를 위해서 프로그램 맨 첫줄에 getchar(); 를 넣은 이후에 몇 초 있다가 게임을 계속 진행해보실 수 있겠네요 ^^

그리고 clock() 함수는 ms 단위로 나오므로, 예를 들어 3000 ms 가 흘렀다면 s 단위로, 즉 초 단위로 환신하기 위해서는 1000을 나눠야 3초가 됩니다. 그를 위해 CLOCKS_PER_SEC 으로 나누어주며, 이 값이 1000이랍니다.

도움이 되셨나요?