-         

Ergebnis 1 bis 7 von 7

Thema: Warum uint16_t statt unsigned int?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    05.08.2005
    Beiträge
    61

    Warum uint16_t statt unsigned int?

    Anzeige

    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

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.183
    char ist 8bit und int ist 16bit. Das sagt doch wohl alles aus bei einem 8bit-Kontroller.

    Hubert

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    05.08.2005
    Beiträge
    61
    ?
    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

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    24.09.2006
    Beiträge
    84
    Nein, die beiden sind genau das selbe.

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.183
    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

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    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.

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    05.08.2005
    Beiträge
    61
    ok, danke!

    Gruß
    RICOLA

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •