timeval时间溢出问题

该结构体是Linux系统中定义,struct timeval结构体在time.h中的定义为:

struct timeval
{
__time_t tv_sec;        /* Seconds. */
__suseconds_t tv_usec;  /* Microseconds. */
};

在ndk中使用tv_sec或者tv_usec时,需先强制类型转换,否则直接用于计算或者显示会有溢出现象(如tv_sec的值输出为负数)。

例子如下:

long long getCurrentTimeInMilliseconds()      
   struct timeval tv;
   gettimeofday(&tv,NULL);
   return ((long long)tv.tv_sec) * 1000 + ((long long)tv.tv_usec) / 1000;
}

 

你可能感兴趣的:(android)