У меня есть этот сегмент кода:Это переполнение?
struct timeval start, end;
gettimeofday(&start, NULL);
//code I'm timing
gettimeofday(&end, NULL);
long elapsed = ((end.tv_sec-start.tv_sec)*1000000 + end.tv_usec-start.tv_usec);
ofstream timeFile;
timeFile.open ("timingSheet.txt");
timeFile << fixed << showpoint;
timeFile << setprecision(2);
timeFile << "Duration: " << elapsed << "\n";
timeFile.close();
Какой будет выводить количество микросекунд, прошедшее. Однако, если я изменю эту строку
long elapsed = ((end.tv_sec-start.tv_sec)*1000000 + end.tv_usec-start.tv_usec);
к этому:
long elapsed = ((end.tv_sec-start.tv_sec)*1000000 + end.tv_usec-start.tv_usec)/1000000.0;
я получаю отрицательное значение. Почему это происходит?
Можете ли вы пометить этот вопрос с языком, используемым? – bdukes
Похож на C++, но исправьте меня, если я ошибаюсь. – mc10
Каковы значения 'end' и' start', которые вызывают отрицательное значение? –