Avatar billede slughead Nybegynder
29. maj 2003 - 14:22 Der er 11 kommentarer og
1 løsning

tidsrummet mellem starten og slutningen af en funktion

Hvis jeg vil have tidsrummet fra et tidspunkt til et andet.
i sekunder, hvordan gør jeg så?
Avatar billede arne_v Ekspert
29. maj 2003 - 14:25 #1
time_t t1,t2;
int sec;
...
t1 = time(NULL);
...
t2 = time(NULL);
sec = t2 - t1;
Avatar billede arne_v Ekspert
29. maj 2003 - 14:26 #2
time er en standard funktion (erklæret i time.h).

Hvis du vil bruge platform specifikke funktioner kan du normalt
også få tiden i millisekunder (et sekund er lang tid på en
computer idag).
Avatar billede slughead Nybegynder
29. maj 2003 - 14:30 #3
skal man have et register inkluderet først, for det virker ikke hos mig!?
Avatar billede slughead Nybegynder
29. maj 2003 - 14:31 #4
jeg har #include <time.h>
Avatar billede arne_v Ekspert
29. maj 2003 - 14:51 #5
Hvilken fejl får du ?

Følgende virker hos mig:

#include <stdio.h>
#include <time.h>

int main()
{
  time_t t1,t2;
  int sec;
  t1 = time(NULL);
  printf("Wait and press return");
  getchar();
  t2 = time(NULL);
  sec = t2 - t1;
  printf("%d\n",sec);
  return 0;
}
Avatar billede slughead Nybegynder
29. maj 2003 - 15:18 #6
Ligemeget... det virker hos mig nu... jeg ved ikke hvad fejlen var.!
Tak for hjælpen!
Avatar billede bertelbrander Novice
29. maj 2003 - 15:19 #7
Man bør bruge difftime() til at finde forskellen på to tider, da man ikke kan være sikker på at tiden i time_t er i sekunder.
Avatar billede arne_v Ekspert
29. maj 2003 - 15:47 #8
Øh.

Jeg mener bestemt at ANSI C og C++ specificerer at time skal returnere antal
sekunder siden 1. januar 1970.

Difftime er der fordi det er usikkert hvad time_t faktisk er. Det skal
være en integer type. Men størrelsen er implementations specifik.

Ikke noget reelt problem, hvis du spørger mig.
Avatar billede bertelbrander Novice
29. maj 2003 - 16:49 #9
Fra ANSI C standarden:
7.23.2.5 The time function
Synopsis
#include <time.h>
time_t time(time_t *timer);
Description
The time function determines the current calendar time. The encoding of the value is unspecified.
Returns
The time function returns the implementation’s best approximation to the current calendar time. The value (time_t)-1 is returned if the calendar time is not available.
If timer is not a null pointer, the return value is also assigned to the object it points to.
Avatar billede arne_v Ekspert
29. maj 2003 - 17:09 #10
Så har jeg taget fejl.

Jeg vil undskylde mig med at det er en ret almindelig antagelse
at time returnerer antal sekunder siden 1. januar 1970.
Avatar billede arne_v Ekspert
29. maj 2003 - 17:10 #11
Og jeg kan heller ikke mindes en C/C++ compiler hvor det ikke
har været tilfældet.

Men altså ikke specificeret i standarden. Kun en Unix konvention
som har bredt sig.
Avatar billede segmose Nybegynder
30. maj 2003 - 09:31 #12
Efter at time_t (og alle de andre _t) bliv taget i brug er den den konkrete type impelemetions specifik og man kan derfor ikke antage noget om typen mm. man bruger de dertil beregnede funktioner.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester