Rückgabe vom Typ uint32_t funktioniert nicht

Gast #2722451
Lesenswert?
• ▲
▼
Hallo,

ich rufe aus meiner main()-Funktion eine Funktion auf, deren 
Rückgabewert vom Typ uint32_t ist. Allerdings sind hier jeweils nur die 
unteren 22 Bit belegt.

Der Rückgabewert in der main() ist nur noch 16 Bit breit, obwohl die 
Variable in der main() als uint32_t deklariert ist.

Alternativ habe ich den Wert auch direkt an die Funktion ltoa() 
übergeben und ein String davon erzeugt. Er ist auch nur 16 Bit breit.

"stdint.h" ist sowohl im c-File der main() als auch im c-File der 
Funktion eingebunden.

Achso, es geht um einen Avr & gcc. Die Optimierung habe ich 
eingeschaltet (-0s)

Hat jemand eine Erklärung?
#2722463
Lesenswert?
• ▲
▼
Ralf schrieb:

> Hat jemand eine Erklärung?


Beschreib nicht deinen Code, sondern zeig ihn.

Das hat gleich mehrere Vorteile
* zum einen tippst du dir die Fingern nicht wund
* zum anderen muessen wir nicht 100-tausend Details nachfragen
* und zu guter letzt können wir auch Fehler sehen, an die du
  noch gar nicht gedacht hast und deren Umgebung du daher gar
  nicht beschrieben hast.
Gast #2722495
Lesenswert?
• ▲
▼
Man kann nur raten...stell den Optimierungslevel auf Q0 und schau es dir 
noch mal an...
und sieh dir mal "volatile" an..

Der Compiler arbeitet bei mit volatile deklarierten Variablen ohne jede 
Optimierung....

Variable in der Unterfunktion debuggen und anschauen ob hier noch alles 
stimmt.


Aber unbedingt wie schon erwähnt: Code posten!


Gruß Choose

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.