在以下程序中,我尝试测量作业的执行时间(for 循环)。大多数时候它工作正常,但是,有时它会返回负值!我的第一个猜测是变量可能会溢出。谁能告诉我我是否正确?我该如何解决这个问题?
谢谢
int main(int argc, char **argv)
{
long int ST;
long int ET;
struct timespec gettime_now;
clock_gettime(CLOCK_REALTIME, &gettime_now);
ST= gettime_now.tv_nsec;
for (i=0; i < 1000; i++)
a[i]=b[i];
clock_gettime(CLOCK_REALTIME, &gettime_now);
ET= gettime_now.tv_nsec;
printf("Time diff: %ld\n", ET-ST);
}