Forum: Mikrocontroller und Digitale Elektronik Speicherbelegung


von Neuling0x04 (Gast)


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

von Severino R. (severino)


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

von Lothar (Gast)


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

von Severino R. (severino)


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

von Lothar (Gast)


Lesenswert?

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

von Severino R. (severino)


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

von Lothar (Gast)


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))

von Neuling0x04 (Gast)


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 !

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.