Forum: Mikrocontroller und Digitale Elektronik [AT Mega] INT 16 BIT


von Teelöffel (Gast)


Lesenswert?

Hallo

Ich wollte mal fragen wieso bei den AT Megas eine INT variable 16 BIT 
groß ist und nicht 8Bit. Die AT Megas sind doch 8BIT chips?

von Johannes M. (johnny-m)


Lesenswert?

Die minimale Datenbreite des Typs int hat nichts mit der Plattform zu 
tun, sondern ist im C-Standard festgelegt. Und da C ursprünglich nicht 
für den Einsatz auf Plattformen mit weniger als 16 Bit vorgesehen war, 
steht in dem entsprechenden ANSI-Dokument eben als minimale Breite 16 
Bit.

von Teelöffel (Gast)


Lesenswert?

Ach so danke

Dann müsste auf 
http://www.roboternetz.de/wissen/index.php/C-Tutorial#int.2C_char.2C_short.2C_long_.28ganze_Zahlen.29

ein Fehler sein weil dort steht; 8, 16, 32 oder 64 BIT für INT möglich

von Johannes M. (johnny-m)


Lesenswert?

Teelöffel wrote:
> Ach so danke
>
> Dann müsste auf
> 
http://www.roboternetz.de/wissen/index.php/C-Tutorial#int.2C_char.2C_short.2C_long_.28ganze_Zahlen.29
>
> ein Fehler sein weil dort steht; 8, 16, 32 oder 64 BIT für INT möglich
Wenn man einen char als int missbraucht (was z.B. in der stdint.h 
gemacht wird), dann kann man implizit auch 8-Bit-Integer verarbeiten. 
Aber das ist nicht der "Ur"-Datentyp int wie er im Standard als 
Schlüsselwort enthalten ist. int8_t und Konsorten sind per typedef 
generierte Datentypen, die allerdings mit der stdint.h zusammen 
ebenfalls zur Standard-Ausstattung von C gehören, nur man muss eben die 
stdint.h einbinden, um sie nutzen zu können.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.