Atmega; Codeoptimierung

OP #1186976
Hallo,

ich verwende den Atmega3290p, schreibe gerade eine simple Schleife und 
frage mich gerade ob es wohl geschickter ist einen (z.B. als 
Funktionsargument übergebenen) Wert zu dekrementieren und diesen 
abzufragen wann er 0 ist. Oder ob das dekrementieren aufwändiger ist und 
ich lieber einen neuen Wert mit 0 definieren sollte, diesen 
inkrementieren und mit dem gewünschten Endwert zu vergleichen.
1
// Variante A:
2
void funktion(int Endwert)
3
{
4
    while (Endwert)
5
    {
6
        // tu etwas...
7
        Endwert--;
8
    }
9
}
10

11
// Variante B:
12
void funktion(int Endwert)
13
{
14
    int Zwischenwert = 0;
15

16
    while (Endwert > Zwischenwert)
17
    {
18
        // tu etwas...
19
        Zwischenwert++;
20
    }
21
}

Wie sind eure Meinungen? Oder sind beide Varianten gleich schnell? Wo 
könnte ich für dieses Thema gezielter nachlesen?

Danke schon für die Tipps.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.