C-Frage zur Ermittlung Takt Cortex-M3

Gast #4636926
Hallo,

als Anfänger habe ich mir nun schon etwas C angetan und mache 
Trockenübungen mit der LPCXpresso-IDE (Super teil).
Ich hüpfe mit F3 so durch die ganzen LPCOpen-Deklarationen und verstehe 
folgendes nicht:
1
/* Return main clock rate */
2
uint32_t Chip_Clock_GetMainClockRate(void)
3
{
4
  uint32_t clkRate;
5

6
  if (Chip_Clock_GetMain_B_ClockSource() == SYSCTL_MAIN_B_CLKSRC_MAINCLKSELA) {
7
    /* Return main A clock rate */
8
    clkRate = Chip_Clock_GetMain_A_ClockRate();
9
  }
10
  else {
11
    /* Return main B clock rate */
12
    clkRate = Chip_Clock_GetMain_B_ClockRate();
13
  }
14

15
  return clkRate;
16
}

Nach dieser Funktion ist die Variable clkRate doch nicht mehr existent?
Warum wird sie dann angelegt, ihr ein Wert zugewiesen und dieser am Ende 
zurückgegeben? Es wäre doch kürzer und schneller einfach zu schreiben
return Chip_Clock_GetMain_A_ClockRate();
else
return Chip_Clock_GetMain_B_ClockRate();
Und sollten durch Aufruf von z.B. Chip_Clock_GetMain_A_ClockRate(); 
irgendwelche anderen Effekte erreicht werden, müßte es doch mit einem 
direkten return auch funktionieren?
Gast
Oha! schrieb:
> Es wäre doch kürzer und schneller einfach zu schreiben

Der Compiler optimiert die Variable sowieso weg.
Aber es ist wesentlich übersichtlicher, wenn es nur ein return am Ende 
der Funktion gibt, anstatt unzählige returns über die ganze Funktion zu 
verteilen.
--> Eine Frage des Programmierstils und der Übersichtlichkeit.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 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.