Forum: Mikrocontroller und Digitale Elektronik Farge wegen 89c51rc2


von Julian (Gast)


Lesenswert?

Hallo,
wichtige Frage, gibt es bei C ein maximum an Variablen die man verwenden 
darf????
ich weiß nicht genau ob mir mein Compiler einfach nur eine sperre rein 
haut wei das Programm zu groß ist oder ob es am Programm selber liegt.
Benutze Raisonance Kit 6.1 RIDE IDE, vielleicht kennt das jemand.
danke für jede antwort

von Peter D. (peda)


Lesenswert?

Julian wrote:
> Hallo,
> wichtige Frage, gibt es bei C ein maximum an Variablen die man verwenden
> darf????

Nein.

Man sollte allerdings drauf achten, wieviel SRAM man hat. Im MAP-File 
kann man die Speicherauslastung ansehen.
Man sollte auch soviel wie möglich lokale Variablen nehmen.
Größere Variablenfelder sollte man im langsameren XDATA ablegen (vorher 
im Startup-Code enablen und dem Compiler mitteilen, wieviel XDATA 
verfügbar ist).


Peter

von Besserwisser (Gast)


Lesenswert?

>gibt es bei C ein maximum an Variablen die man verwenden darf

Radio Eriwan sagt:

Im Prinzip schon.

Du kannst natürlich nur soviele Variablen haben wie Du benennen kannst.
Das ist aber ein wenig unterschiedlich unter den Compilern.

Nehmen wir aber mal an Du darfst bis zu 32 Zeichen lange Identifier 
haben und so rund 60 verschieden Zeichen verwenden. Dann kannst Du 60 
hoch 32 verschiedene, also rund 8 mal 10 hoch 56 (eine 8 mit 56 Nullen) 
verschiedene Identifier verwenden. Das muss dann evtl. noch zwischen 
Typen, Funktionen usw. aufgeteilt werden oder die haben getrennte 
Verwaltungen.

Ich bezweifle allerdings das irgendein Compiler soviele Variablen 
verwalten kann. Das hängt dann auch noch von der Implementierung ab. 
Etwa 2 hoch 32 (also etwa 4 Milliarden)  oder vielleicht auch 2 hoch 64 
(also 18 mal 10 hoch 6) wäre eine mögliche Grenze.

Praktisch ist das aber RAM der ausschlaggebende Faktor, da hat Peter 
schon recht.

von Besserwisser (Gast)


Lesenswert?

>2 hoch 64 (also 18 mal 10 hoch 6)(also 18 mal 10 hoch 6)
Ist natürlich falsch. Es muss 18 mal 10 hoch 18 heissen.

von Julian (Gast)


Lesenswert?

Ok, problem ist der RAM.
hab eine lösung gefunden in dem ich die Variablen umstendlcih versuch zu 
verringern.
Daher die frage verbraucht z.B. ein Array oder eine Strucktur mehr oder 
weniger Speicherplatz?

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.