mikrocontroller.net

Forum: PC-Programmierung Vergleich zweier uint8 mit uint16 Konstante?


Autor: Wiesel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich hab mich gefragt welche dieser beiden IFs auf meinem STM32 wohl 
effizienter ist.
 if (u8_value1 == 0x12 && u8_value2 == 0x34)
{
} 
 if ( (uint16_t) ((u8_value1 << 8) + u8_value2) == 0x1234)
{
} 

Funktionieren würde doch beides, oder?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sieh Dir den erzeugen Assemblercode beider Konstrukte an, dann kannst Du 
es selbst herausfinden.

Üblicherweise sind Compiler nicht blöd und können Operationen mit 
konstanten Werten ziemlich gut optimieren.

Autor: Wiesel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast Recht. Mein GCC erzeugt aus beiden Varianten Assemblercode (bzw. 
die erzeugten .lst Files sind identisch). :)

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wiesel schrieb:
> Mein GCC erzeugt aus beiden Varianten Assemblercode

Ich vermute, daß Du schreiben wolltest den gleichen.

> (bzw. die erzeugten .lst Files sind identisch). :)

Autor: Wiesel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rufus t. Firefly schrieb:
> Ich vermute, daß Du schreiben wolltest den gleichen.

Du hast absolut Recht. Das passiert wenn man beim Schreiben eines Satzes 
in Gedanken schon beim nächsten ist :)

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.