인프런 커뮤니티 질문&답변
강의 시작부분에서 time함수에 대해
작성
·
366
0
이전 강의에서 나온 부분이긴한데 상관없을것 같아서 질문합니다.
강의 시작부분에서 코드를 보면 랜덤함수의 시드값을 초기화하는 과정에서 time 함수를 사용하는데, 제가 직접 코딩할때는 time함수가 내장되어있지 않아서 time_t( ) 함수만 비슷하게 존재하더라구요.
혹시 그 이유를 알 수 있을까요?
참고로 chrono 라이브러리를 헤더파일에 추가하면 time함수를 사용할 수 있다는건 알고 있습니다. 강의에서는 왜 되고, 제 비주얼스튜디오에서는 사용할 수 없는지 궁금합니다.
(버전은 VS 2019입니다)
퀴즈
C++ 프로젝트에서 코드의 인터페이스(선언)와 구현을 각각 .h 파일과 .cpp 파일로 분리하는 주된 이유는 무엇일까요?
메모리 사용량을 자동으로 최적화하기 위해서
컴파일러의 종류에 상관없이 코드를 실행하기 위해서
선언과 구현을 분리하여 코드 구조를 명확히 하고 컴파일 의존성을 관리하기 위해서
파일 시스템에서 자동으로 백업을 생성하기 위해서
답변 4
1
현재 사용하는 라이브러리 버전마다 차이가 있을 수 있습니다.
iostream.h 내부에서 time.h를 include한다면
별도로 time.h include가 필요 없겠지만,
그게 아니라면 직접 해주시면 됩니다.
0
0
0
time 함수를 마우스 더블클릭해서 선택하고 f12를 누르면
실제 어디에 정의되어 있는지 확인할 수 있습니다.
time 함수는 time.h에 정의되어 있지만,
헤더들이 서로 이리 저리 물려 있기 때문에
#include <iostream>
을 추가하면 간접적으로 time.h을 사용할 수 있습니다.
chrono도 마찬가지 상황입니다.





무엇이 궁금한지 조금 모호하게 쓴것같아서 더 구체적으로 질문올리겠습니다.
제 VS2019에서는 #include <iostream> 만 추가한 상태에서 time함수가 작동이 안됩니다. 그래서 혹시 다른 함수는 되나 찾아봤는데 time_t(0) 함수는 작동합니다. time_t(nullptr)은 또 안되구요.
time 함수를 작동시키려면 #include <chrono> 혹은 #inlclude <time.h> 라이브러리를 추가를 해야합니다
왜 제 VS에서는 이런 현상이 발생하는지 모르겠어서 질문올립니다!