0

struct timeval の長さは 64 ビットです。プロジェクトでは、この long (struct timeval) を 2 つの 32 ビット チャンクに変換し、各チャンクを別の変数に入れる必要があります。どうすればいいですか?事前にサンクス。

4

4 に答える 4

2
uint32_t* values = &timevalstruct;

// depends on endianess

uint32_t v1 = values[0];
uint32_t v2 = values[1];
于 2010-10-15T11:15:34.133 に答える
1

レピーの答えへの追加として:

union tvs
{
    struct timeval tv;
    struct ints {
        uint32_t v1;
        uint32_t v2;
    };
};

tvs t;
t.tv = timevalstruct;
uint32_t v1 = tv.ints.v1;
uint32_t v2 = tv.ints.v2;

ポインタを扱いたくない場合。

于 2010-10-15T11:18:25.117 に答える
0

これを参照してください:http: //linux.die.net/man/2/gettimeofday

timeval構造のtv_secフィールドとtv_usecフィールドを使用できますか?

于 2010-10-15T11:19:53.050 に答える
0
struct timeval tv;
...
uint32_t seconds = tv.tv_sec;
uint32_t micros = tv.tv_usec;

これで、32 ビット整数に分割されました。

于 2010-10-15T17:34:46.157 に答える