PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Allgemeine Frage zu Variablen



popi
19.06.2006, 19:20
Hallo zusammen,

ich hätte mal eine Frage zu Variablen.
Ich kenne nur folgende:

char 1 Byte
short 2 Bytes
int 4 Bytes
long 4 Bytes
long long 8 Bytes
float 4 Bytes
double 8 Bytes

Aber in allen Programmen sehe ich sowas wie

uint8_t ????

Was ist das denn? und warum "t"???

uint könnte ja unsigned integer 8 Bit bedeuten!?

Aber sicher bin ich mir nicht.

Kann mir bitte jemand sagen, was man da richtigerweise benutzt, ob es ein Unterschied zwischen "unsigned int" und "uint_8_t" gibt ???

Danke schon mal im Voraus und Grüße

popi

Pascal
19.06.2006, 22:50
uint8_t ????

Was ist das denn?

Das ist eine Variable, die 8 Bit breit und unsigned ist.
int8_t dagegen wäre eine Variable mit 8 Bit Breite, die aber ein Vorzeichen besitzt.



ob es ein Unterschied zwischen "unsigned int" und "uint_8_t" gibt ???

Bei int ist es nicht eindeutig, wieviel Bits die Variable umfasst. Das variiert von Plattform zu Plattform teilweise. Bei uint8_t dagegen ist eindeutig, dass es sich dabei um eine 8 Bit breite Variable handelt und bei uint16_t entsprechend 16 Bit.

SeaLion
20.06.2006, 08:23
Das liegt wieder mal an den Eigenheiten von C. Die Größe ist da nicht so genau festgelegt. Die kann sogar von Compiler zu Compiler variieren. Deshalb werden bei der AVR Version die Größen expliziet angegeben. So stellt man sicher, daß das Programm nach einem Update immer noch gleich funktioniert (funktionieren solte :-) )

SprinterSB
20.06.2006, 08:51
Die Definition dieser Typen findest du im Header inttypes.h, der u.a. mit avr/io.h includet wird. Es spart etwas Schreibarbeit und wie Pascal schon schreibt geben sie dir Variablen definierter Breite.
Das _t am Ende ist eine Code-Convention für selbst definierte Typen.

popi
20.06.2006, 18:28
Ich danke Euch sehr... waren super Antworten!!!

Grüße popi