-
-
Warum uint16_t statt unsigned int?
Hallo,
in den Artikeln des RN-Wissen-Bereichs werden ja verschiedene
Beispielimplementierungen für ATMEL Controller mit avr-gcc gegeben.
Ich frage mich nun, wo der Unterschied zwischen der Benutzung der
diversen Datentypen besteht. Wo ist denn der Vorteil/Nachteil zwischen:
uint16_t bzw. unsigned int
uint8_t bzw. unsigned char
.
.
.
Oder ist das vollkommen egal, welche Deklaration ich benutze?
Danke für Aufklärung
Gruß
RICOLA
-
Erfahrener Benutzer
Robotik Visionär
char ist 8bit und int ist 16bit. Das sagt doch wohl alles aus bei einem 8bit-Kontroller.
Hubert
-
?
das ist ja klar, siehe oben, aber ich verstehe nicht, warum manche
das schlüsselwort "unsinged int" nehmen und manche das schlüsselwort
"uint16_t". Gibt es da einen Unterschied? Also macht der Compiler damit
etwas anderes?
Gruß
RICOLA
-
Nein, die beiden sind genau das selbe.
-
Erfahrener Benutzer
Robotik Visionär
Da hab ich wohl schlecht gelesen. Die Standarddefinitionen stehen in der stdint.h.
Es gibt jede Menge Bezeichnungen für den gleichen Typ, du musst sie nur definieren oder die entsprechende Datei includen.
Hubert
-
Erfahrener Benutzer
Robotik Einstein
C hat die Schwäche, dass die Größe der Datentypen nicht verbindlich festgelegt ist. Ein unsigned int kann je nach Controller/CPU unterschiedlich groß sein. Auf enm PC mit 32-Bit CPU sind es zb 32 Bit. Um diese Schwäche auszubügeln und portierbaren Code zu haben, definiert avr-gcc diese Datentypen mit festgelegter Länge.
-
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen