私は、現在の2つのクラスレベルメンバ変数をとり、それらをtimeval構造体に設定し、timeval obj(値で)を返す関数を持っています。C++設定timevalメンバー
クラスレベルメンバのtimevalオブジェクトを設定するときと、各get()呼び出しで新しい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オブジェクトを新しいオブジェクトの作成とその値の設定とは異なるものにする理由はありますか?
tv_usecにはタイプキャストが必要ですか? – rplusg
これらの2つのケースで違いはありません。問題は残りのコードにあります。 'tv.tv_usec = time [1];でブレークポイントを設定すると、tv.tv_usecは変更されていないことがわかりますか? – Dialecticus
問題の最小限の、コンパイル可能な例を投稿できますか? –