www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Farge wegen 89c51rc2


Autor: Julian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Besserwisser (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Besserwisser (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Julian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

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.