www.mikrocontroller.net

Forum: Compiler & IDEs AVR-GCC - defaultwert nicht benutzter buffer im ram


Autor: Neubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hey,

ist der inhalt eines buffers "char buffer[5]" vom compiler (avr-gcc, 
winavr) jeweils definiert mit 0 aufgefüllt oder kann dort irgendein wert 
des ram's stehen ???

wer weis es genau ???


thx
Neubi

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das kommt drauf an, wo diese Variable steht.

Globale Variablen werden, sofern es keine explizite
Initialisierung gibt, mit 0 initialisiert.

Alle anderen Variablen hingegen (also: welche in Funktionen)
haben undefinierte Werte.

Bei funktionslokalen static Variablen bin ich mir jetzt
nicht sicher, wie da die Vorschrift lautet. Aus dem Bauch
heraus würde ich mal sagen: wie globale Variablen. Kann
aber auch daneben liegen.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger wrote:

> Bei funktionslokalen static Variablen bin ich mir jetzt
> nicht sicher, wie da die Vorschrift lautet. Aus dem Bauch
> heraus würde ich mal sagen: wie globale Variablen.

Ja.

Referenz:
ISO/IEC 9899:1999 (E), 6.7.8 Initialization

10

... If an object that has static storage duration is not initialized
explicitly, then:

-- if it has pointer type, it is initialized to a null pointer;

-- if it has arithmetic type, it is initialized to (positive or
   unsigned) zero;

-- if it is an aggregate, every member is initialized (recursively)
   according to these rules;

-- if it is a union, the first named member is initialized
   (recursively) according to these rules.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein Bauch trügt nicht!
http://www.dclc-faq.de/kap17.htm

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.