当前位置: 技术问答>linux和unix
关于gettimeofday() 函数的奇怪问题
来源: 互联网 发布时间:2016-02-23
本文导语: 代码: struct timeval start, stop; gettimeofday(&start, 0); // 执行一个函数调用; gettimeofday(&stop, 0); assert(stop.tv_usec >= start.tv_usec); 每次到了 assert 语句都会出现问题,也就是 stop.tv_usec 反而小于 start.tv_usec ,不知道为...
代码:
struct timeval start, stop;
gettimeofday(&start, 0);
// 执行一个函数调用;
gettimeofday(&stop, 0);
assert(stop.tv_usec >= start.tv_usec);
每次到了 assert 语句都会出现问题,也就是 stop.tv_usec 反而小于 start.tv_usec ,不知道为什么。
我尝试把函数调用改为 for(int i = 0; i = start.tv_usec
单独比较它怎么行啊,在同一秒内比较才有效,你要先比较tv_sec
struct timeval start, stop;
gettimeofday(&start, 0);
// 执行一个函数调用;
gettimeofday(&stop, 0);
assert(stop.tv_usec >= start.tv_usec);
每次到了 assert 语句都会出现问题,也就是 stop.tv_usec 反而小于 start.tv_usec ,不知道为什么。
我尝试把函数调用改为 for(int i = 0; i = start.tv_usec
单独比较它怎么行啊,在同一秒内比较才有效,你要先比较tv_sec
|
同意楼上
tv_usec比较的是微妙级,比如说你的start时间是30.5秒,而stop是31.2秒,显然,assert语句异常
tv_usec比较的是微妙级,比如说你的start时间是30.5秒,而stop是31.2秒,显然,assert语句异常
|
tv_usec 成员是1秒内的微妙数
就好像 10.01
tv_usec是表示小数部分
就好像 10.01
tv_usec是表示小数部分