Kein Warnung bei Zuweisung mit Verlust???

Gast #585289
Lesenswert?
• ▲
▼
Hallo,

irgendwie zweifele ich gerade an meinen zugegeben etwas verosteteten 
C-Ken
ntnissen.

Compiler: AVR-GCC
Options -Wall -Wextra, -O0

void foo( uint16_t i )
{
   uint8_t j;


  j = i;

 ....

 tue was mit j


Sollte der Compiler in so einem Fall nicht eine Warnung auswerfen, daß
da das Highbyte auf der Strecke bleibt?



Grüße
Thomas
#585299
Lesenswert?
• ▲
▼
Thomas Schwetzer wrote:

> Sollte der Compiler in so einem Fall nicht eine Warnung auswerfen, daß
> da das Highbyte auf der Strecke bleibt?

In dem Satz widersprechen sich 2 Wörter:
  'sollte' und 'Warnung'

Der C Standard fordert von keinem Compiler irgendeine Warnung.
Wenn ein Compiler eine Warnung ausgibt, dann ist das eine
goodwill-Aktion des Compilerbauers.

Allerdings: Die von dir eingeforderte Warnung wird, wenn
überhaupt, meist nur bei Zuweisungen von Floating Point zu Integer
ausgegegben. Alles andere würde bei der überwiegenden Mehrzahl
der Programme da draussen zu einer Flut von Warnungen führen.

Manchmal hilft eine Erhöhung des Warnung-Levels (wie
pingelig der Compiler ist). Ob der gcc das kann entzieht
sich meiner Kenntnis.

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.