Unterschied zwischen int und int8_t

Hi,

Was hat es mit diesen Variablen auf sich?:

uint8_t
int8_t
uint16_t
....

gibt es einen Unterschied zwischen int8_t und int ?

wozu brauche ich die Variablen mit dem t ?

Mfg

Die Variablentypen mit dem _t geben die Länge der Variablen in Bit an:

uint8_t = unsigned int 58 Bit groß
int 16_t = (signed) int 16 Bit groß

Bei int allein hängt die Größe vom Prozessor ab. Bei 8-Bit AVR ist int (signed) 16 Bit groß, bei 32-Bit-Prozessoren 32 Bit.

Gruß Tommy

Hi

Das u steht für unsigned - also vorzeichenlos - der Typ kennt nur Null und positive Zahlen.
Das int für Integer - also nix mit Komma - ohne das U teilt sich der Wertebereich in Negativ und Positiv, wobei der Negative 1 größer ist.
INT8_T -128...127
Das _T ist ein Überbleibsel aus grauer Dinosaurier-Zeit ... zumindest laß ich was in der Richtung in den Tiefen des WWW.

Durch die Nutzung dieser Schreibweise hast Du den Vorteil, daß Du bestimmst, wie breit diese variable ist - EGAL, auf welchem Prozessor.
So hat der ESP wohl 32-Bit, was das INT auf 4 Byte (=32 Bit) aufbläht.
Obwohl der AVR nur 8-Bit hat, ist INT hier auf 2 Byte (=16 Bit) festgelegt.

Oben meinte Tommy56 übrigens uint8_t = 8 Bit groß (Schreibfehler).

MfG

postmaster-ino:
Oben meinte Tommy56 übrigens uint8_t = 8 Bit groß (Schreibfehler).

Kein Schreibfehler, Du liegst nur einfach falsch (wie so oft). uint8_t = byte

Dein INT8_T gibt es übrigens nicht, das heißt int8_t.
Tipp: C++ ist casesensitive :wink:

Gruß Tommy

Hi

Das könntest Du allerdings ändern - wohl ebenfalls - wie so oft :wink:

MfG

Was sollte ich ändern? Meine richtige Angabe in Deine falschen Vorstellungen?

Gruß Tommy

Hi

Tommy56:
Die Variablentypen mit dem _t geben die Länge der Variablen in Bit an:

uint8_t = unsigned int --> 5 <-- Bit groß
int 16_t = (signed) int 16 Bit groß

Bei int allein hängt die Größe vom Prozessor ab. Bei 8-Bit AVR ist int (signed) 16 Bit groß, bei 32-Bit-Prozessoren 32 Bit.

Gruß Tommy

Bitte bitte, erkläre mir, woher Deine 5 stammt - vll. lässt sich meine falsche Vorstellung ja doch noch auf den rechten Weg bringen?

Ich habe ja kein Problem damit, etwas falsch gemacht zu haben - aber bitte, dann korrigiere mich doch wenigstens.

MfG

postmaster-ino:
Oben meinte Tommy56 übrigens uint8_t = 8 Bit groß (Schreibfehler).

Der von Dir zitierte Text war nicht falsch.

Ja, ich hatte es im Original falsch geschrieben.
Wenn Du aber so zitierst, dass man den Fehler in Deinem Zitat nicht sieht, dann wird es schwierig ihn zu erkennen.
Die 5 von mir war falsch, ich habe mich aber auf die 8 in Deiner Zeile gestützt.

Da haben wir aneinander vorbei kommuniziert.

Gruß Tommy

postmaster-ino:
So hat der ESP wohl 32-Bit, was das INT auf 4 Byte (=32 Bit) aufbläht.
Obwohl der AVR nur 8-Bit hat, ist INT hier auf 2 Byte (=16 Bit) festgelegt.

Der ESP hat 32-Bit, was das INT auf 4 Byte (=32 Bit) festgelegt.
Obwohl der AVR nur 8-Bit hat, wird das INT auf 2 Byte (=16 Bit) aufgebläht.

Alles eine Frage vom Standpunkt des Betrachters!

Gruß Fips

Hi

Achso ... Freudscher ...

Ich schrieb, was Du schreiben wolltest und, daß Das nur ein Schreibfehler gewesen wäre
Du dachtest, ich hätte Dich zitiert, wobei uint8_t = 8 Bit ja durchaus korrekt ist, ohne Schreibfehler.

Deshalb ja auch kein Zitat - Quote-Tags kann ich schon :wink:

Gelobe Besserung

mfG

Ok, das kriegen wir gemeinsam noch hin, im Interesse der Leser.

Gruß Tommy

Ah danke für die Aufklärung

Mfg

und zum Abschluss sagen wir Siggi noch das all das Datentyp(en) genannt wird :wink:

Doc_Arduino:
und zum Abschluss sagen wir Siggi noch das all das Datentyp(en) genannt wird :wink:

Ist gemerkt ^^

Derfips:
Obwohl der AVR nur 8-Bit hat, wird das INT auf 2 Byte (=16 Bit) aufgebläht.

So gibt es der C und C++ Standard vor: Ein int soll mindestens 16Bit haben.
Aber zum glück kannst du deine ints auch zu 8Bit machen.
Der Gcc machts möglich.

int8_t und vergleichbare, wie uint8_t gibt es nicht immer.

Weswegen sie auch in dieser Liste gar nicht auftauchen.
Lesestoff: C++ Fundamental types

Da der Postmaster, 32bit <-> 32bit als aufblähen bezeichnet

Gehe ich stark davon aus das du schon weißt auf was ich anspielen wollte.

Ansonsten Entschuldige ich mich höflich und gebe zu keinerlei Ahnung vom AVR zu haben.

Gruß fips

Achso....
Wollte dich eigentlich nur bestätigen!

(und noch so ein paar Randbedingungen erwähnen)

Dann hätte ich den von dir verlinkten Stuff wohl vor meinem letzten Post lesen sollen.
Doch meine Aufnahmefähigkeit war schon zu stark eingeschränkt.

P.s.: Combie, schau doch bitte in deine Wüklkiste ob du nochmal was zur Demotivation oder Motivation meinerseits beitragen kannst.

Gruß Fips

Vera F. Birkenbihl - Humor in unserem Leben