나는이 함수를 호출 할 때마다 부동 소수점 시간 (밀리 초)을 float로 최대 30 회/초로 늘리려고합니다. 아래의 함수가 반환하는 타임 스탬프는 항상 동일하지만, std::cerr
에 인쇄하면 다른 값을 얻습니다. 내가 함수를 호출 할 때마다 변수를 생성하고 있으므로 내가 여기서 잘못하고 있는지 확실하지 않습니다. 어떤 도움을 주시면 감사하겠습니다. 제안 당으로 나는 C++ (11)를 사용하여이 Windows x64, x86 및 리눅스 (주로 우분투에 CentOS) 모두에서이 컴파일 할 필요가 있어요 :결과 호출시 타임 스탬프에 대해 동일한 값 가져 오기
float GetUnixTimestamps()
{
float milliseconds_since_epoch =
std::chrono::duration_cast<std::chrono::milliseconds>
(std::chrono::system_clock::now().time_since_epoch()).count();
std::cerr << milliseconds_since_epoch << std::endl;
return milliseconds_since_epoch;
}
편집 할 수 있습니다. 나는 유닉스에서 현재 시간을 얻고 싶다. 나는 S.O 게시물 19555121과 16177295을 이미 읽었지 만 값은 여전히 타임 스탬프에 대해 동일하게 유지됩니다.
은 컴파일러 최적화와 비슷합니다. [mcve]를 게시 할 필요가 있으며 컴파일러와 컴파일 플래그를 명시해야합니다. –
"항상 같습니다"를 정의하십시오. –
예를 들어 첫 번째 호출에서 1478019383296을 얻었고 두 번째 호출에서 같은 함수를 호출하면 1478019383296과 동일한 값을 얻게됩니다. 2016 년 11 월 1 일 16 : 56 : 23.296 GMT는 밀리 초 단위로 변환되기 때문에 다음 통화를 기준으로 값이 변경됩니다. –