현재 클래스 수준 멤버 변수 두 개를 사용하여 timeval 구조로 설정하고 timeval obj (값 기준)를 반환하는 함수가 있습니다.C++ 설정 timeval 멤버
각 get() 호출시에 새 timeval 객체를 작성하는 것과 비교하여 클래스 수준 멤버 timeval 객체를 설정할 때 문제가 발생합니다. 클래스
protected:
int time[2];
timeval tv;
// work done on setting the time array
timeval getTimeval()
{
tv.tv_sec = (time_t)time[0];
tv.tv_usec = time[1];
return tv;
}
이 내부
올바른 timeval 형 값을 반환하지 않습니다. tv.tv_sec은 덮어 쓰이지 만 tv_usec는 일정하게 유지됩니다. 그러나 get 호출 내에서 timeval 객체를 만들면 올바른 값을 반환합니다.timeval getTimeval()
{
timeval t;
t.tv_sec = (time_t)time[0];
t.tv_usec = time[1];
return t;
}
새로운 오브젝트를 생성하고 그 값을 설정한다 다를 멤버 변수에 timeval 형 객체를 설정 어떤 이유가 있는가?
tv_usec에는 type-cast가 필요하지 않습니까? – rplusg
이 두 가지 경우에는 차이가 없어야합니다. 문제는 나머지 코드에 있습니다. 'tv.tv_usec = time [1];에 중단 점을 설정하면 tv.tv_usec가 변경되지 않은 것을 알 수 있습니까? – Dialecticus
최소한의 컴파일 가능한 예제를 게시 할 수 있습니까? –