www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Speicherbelegung


Autor: Neuling0x04 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
eine Frage was belegt mehr Speicherplatz:

if(second == 60)
{
  second = 0;
}


oder


if(second == 60)
  second = 0;


of sieht man ja das die { und die } weg gelassen werden, wenn die 
anweisung nur einen befehl enthält.
Kann man dadurch speicherplatz sparen, was ja grade bei uC's wichtig ist

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hängt wohl vom Compiler ab.
Eigentlich sehe ich keinen Grund, warum es einen Unterschied geben 
sollte.

Ab besten probierst Du es mal mit dem entsprechenden Compiler aus.

Severino

Autor: Lothar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Speicherbedarf ist der Gleiche. Die Klammern dienen der Übersicht 
und sind bei Programsequenzen, die länger als eine Zeile sind, unbedingt 
erforderlich. Im Kompilierten Code ist davon nichts mehr zu sehen. Schau 
die die generierten Listfiles an. GCC hat, wie andere Compiler sicher 
auch, Optimierungsschalter die den Grad der Optimierung festlegen.
Grüsse
Lothar

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar wrote:
> Der Speicherbedarf ist der Gleiche. Die Klammern dienen der Übersicht
> und sind bei Programsequenzen, die länger als eine Zeile sind, unbedingt
> erforderlich.

Korrekt wäre: ...die länger als eine Anweisung sind.
Dem C-Compiler ist die Zeilenlänge ziemlich egal.

Sie dienen nicht der Übersicht, sondern gruppieren mehrere Anweisungen 
zu einem Code-Block.

Severino

Autor: Lothar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey, wir hatten es doch heute schon miteinander. Ok, Du hast Recht, Du 
hast es syntaktisch besser ausgedrückt ....
Frohe Ostern
Lothar

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

@ Lothar

Ja, einen guten Abend, und auch Dir frohe Ostern.

Sorry, wenn ich auf Details bestehe, aber ich habe oft gesehen, wie
Begriffe verwechselt werden, es beginnt in C bei der Verwirrung um
Deklaration und Definition; manche Leute halten es für Synonyme. Andere
Leute sprechen von "if-Schleifen", was es nicht gibt.
Es ist besser, sich präzise auszudrücken.

Severino

Autor: Lothar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Severino
Im Prinzip hast Du Recht, IT kennt präzise Definitionen. Wenn Du das 
einem, der ein Problemchen hat um die Ohren haust, versteht er das 
vielleicht nicht mal. Und eine If-Schleife oder If-Codesequenz, so groß 
ist der Unterschied für mich nicht. Wird in manchen C-Büchern als 
abweisende Schleife beschrieben. Trotzdem, netter Kontakt. Wenn so eine 
Frage kommt, versuche ich zu helfen, manchmal auch landwirtschaftlich. 
Ich denke, wir begegnen uns ;o))

Autor: Neuling0x04 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hehe,
Guten morgen !

Vielen Dank für die vielen Antworten, damit sei mir bestens geholfen :)

Das die { } bei mehr als einer Anweisung erforderlich sind war mir 
geläufig!

Also noch einen frohen Ostermontag und vielen Dank,

bis bald !

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.