C-Frage zur Ermittlung Takt Cortex-M3

Gast #4636926
Lesenswert?
• ▲
▼
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 #4636933
Lesenswert?
• ▲
▼
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren