AVR GCC Verwendung von bool als Funktionsparameter oder return-Wert

OP #2401072
Lesenswert?
• ▲
▼
Hallo,

ich wollte mal fragen, ob es Vorteile gibt bei der Verwendung von bool 
als Funktionsparameter oder return-Wert.

Der Compiler könnte ja den wert in einem Status-Flag speichern und dann 
auswerten?
Werden mehrere bools auch auf ein 8-bit Wert automatisch gemappt oder 
werden separate Variablen angelegt?

Ist bei Funktionsparametern ein Status register mit mehreren Flags 
(Bitpositionen) zwei einzelnen bool Parametern vorzuziehen?

Zumindest habe ich bei gcc inline assembler noch keine Entsprechung 
gefunden.

Danke für eure Kommentare?

Adib.
--
#2401186
Lesenswert?
• ▲
▼
> Ist bei Funktionsparametern ein Status register mit mehreren Flags
> (Bitpositionen) zwei einzelnen bool Parametern vorzuziehen?

Wenn es nicht gerade ein ganz kleiner µC ist, dann weder noch, sondern 
enums mit C++. Das dokumentiert, und es wird gleichzeitig vom Compiler 
geprüft. Beim "Refactoring" sorgt auch der Compiler dafür, dass es 
weniger Probleme gibt. Eclipse kann die eingesetzten enum-Werte mittels 
"References" besser auffinden als reine Textsuche.

Was liest sich besser: x(true, false) [mit bool] oder x(State_Enable, 
Mode_Immediate) [die enum-Variante] ?

Natürlich geht auch x(ENABLE | IMMEDIATE) [mehrere Flags] oder im ersten 
Fall lesbarer mit #define/const. Aber nur mit C++ und enums kann er auch 
prüfen, ob es inhaltlich passt.

> Werden mehrere bools auch auf ein 8-bit Wert automatisch gemappt oder
> werden separate Variablen angelegt?

M. W. wird hier pro bool (also pro bit) ein ganzes byte "verschwendet". 
Den Luxus gönne ich mir. -fshort-enums sorgt dafür, dass es bei enums 
nicht "ausufert".

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.