Warum feste Bitbreite?

Gast #367588
Lesenswert?
• ▲
▼
int hat per Definition (ANSI-Norm) immer mindestens 16 Bit. Und es ist
nicht nur der Speicherbedarf, sondern auch die Tatsache, dass ein
8-Bit-µC nur 8 Bit auf einmal verarbeiten kann. Jeder Zugriff auf
größere Werte dauert erheblich länger, ist aufwändiger was den Code
angeht (rumspielen mit Flags...) und auch nicht mehr atomar. Der
Speicherbedarf spielt bei einem µC, der u.U. nur ein paar hundert Bytes
(oder z.T. auch noch weniger) SRAM besitzt, ebenfalls eine große Rolle.
Aus diesen Gründen nimmt man bei µCs eigentlich für Variablen immer nur
so viele Bits wie nötig, um den gewünschten Zahlenbereich darstellen zu
können. Wenn man eine Variable hat, die nur Werte von 0..100 annehmen
kann, reicht ein char (bzw. uint8_t) völlig aus. Es erhöht die
Performance und schont die Ressourcen.
Gast #367589
Lesenswert?
• ▲
▼
...Ergänzung: Das oben gesagte bezieht sich natürlich auf 8-Bit-µCs. Bei
einer 16- oder 32-Bit-CPU macht es dann keinen Unterschied mehr, ob man
int oder char nimmt. Der ANSI-Standard definiert int als Typ, der die
natürliche Breite der Maschine (also CPU) hat, allerdings eben mit der
Einschränkung, dass int mindestens 16 Bit breit ist. Der ANSI-Standard
ist nunmal nicht auf 8-Bit-CPUs zugeschnitten...
Gast #367590
Lesenswert?
• ▲
▼
Hmm, das hätte ich schreiben sollen. Eingesetzt war der Atmega16, d.h.
Deine zweite Antwort spricht genau das an, ein Geschwindigkeitsvorteil
ist nicht zu erwarten, oder? Also nur der Ressourcenvorteil.

Danke für die schnelle und kompetente Antwort!

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.