Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Time Offset

  1. #1
    Registrierter Benutzer
    Registriert seit
    02.05.2005
    Beiträge
    24

    Time Offset

    Wie kann ich in einer Schleife einen Wert nur beim ersten Durchlauf zuweisen?
    Meine Aufgabe ist es, den Zeitoffset bezogen auf den ersten Durchlauf der SChleife bei jedem weiteren Durchlauf wieder auszugeben. Ich habe es mit time.h mit der Funktion difftime (end,start); probiert und wollte die Differenz immer auf den ersten Schleifendurchlauf beziehen. Habt Ihr da einen Vorschlag?

    Vielen Dank!!

  2. #2
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819
    Wie wäre es mit int blabla=0 vor der Schleife und am Ende der Schleife ein
    Code:
    if (!blabla) {
      blabla = 1;
      sachen für ersten durchlauf
    }

  3. #3
    Registrierter Benutzer
    Registriert seit
    02.05.2005
    Beiträge
    24
    Hi Joghurt,

    Ich kann leider nur innerhalb der Schleife arbeiten, denn der Funktionsaufruf in dem ich arbeiten muss, wird in einem anderen Modul in einer Schleife ausgeführt. Gibt es was ähnliches wie eine Singelton Konstruktion?

    Vielen DAnk!

  4. #4
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819
    Code:
    void foo( void )
    {
        static int called = 0;
        if (!called) {
            printf("Erster Aufruf.\n");
            called = 1;
        }
    }

  5. #5
    Registrierter Benutzer
    Registriert seit
    02.05.2005
    Beiträge
    24
    Hi Joguhrt,

    Mit folgendem Code wollte ich den 1. Wert praktisch speichern und mit time (&end); immer den Offsetwert bei jedem Schleifendurchlauf anzeigen.
    Doch das mit dem time (&start); klappt leider nicht innerhalb der if-Anweisung
    Weisst du oder Ihr eine Abhilfe um es lauffähig zu machen? Oder hast du einen anderen Vorschlag?
    Code:
     
    time_t start,end;
    double dDif;
    static int called = 0;
    
    if(!called)
    {
      printf("Erster Aufruf.\n");
      called = 1;
      time (&start);
    }
    time (&end);
    dDif = difftime (end,start);
    printf ("Offset:%f\n", dDif );

  6. #6
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819
    Start muss natürlich auch static sein.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •