Int Variablen

OP #516412
Lesenswert?
• ▲
▼
kann mir mal bitte jemand die verschiedenen Integer erklären oder sagen 
wo es steht.
Ich kenne:
int16_t  - 16bit mit Vorzeichen
uint16_t - 16bit ohne Vorzeichen
int8_t -    8bit mit Vorzeichen
uint8_t -   8bit ohne Vorzeichen

In Definitionen findet man dann noch solche Angaben:
#define u16 unsigned int - vermutlich 16bit ohne Vorzeichen
Gibt es sowas auch als 8bit mit Vorzeichen?

Welche Integerart habe ich als Funktionsrückgabe wenn ich schreibe:
int test(int x){
oder:
int yxz - also einfach nur int?
Gast #516419
Lesenswert?
• ▲
▼
Einfach nur int ist Definitionssache: C-Spezifikation sagt: mehr oder 
gleich viel Bits wie short, aber weniger oder gleich viel Bits wie long.

Üblich bei C-Compilern für DOS, µC Win3.1 etc. als Zielplattform:
short = 16 Bit
int = 16 Bit
long = 32 Bit

bei Zielplattform Windows (ab 95), Linux, Unix:
short = 16 Bit
int =  32 Bit
long = 32 Bit

8 Bit ist übrigens char, gibts natürlich auch als signed und unsigned.
Gast #516838
Lesenswert?
• ▲
▼
@Stefan:

Die [u]int*_t-Typen sind Teil der ISO-C-Norm und im Header <stdint.h> 
definiert. Da gibt es auch noch [u]int_fast*_t und [u]int_least*_t. Die 
ersteren sind gedacht für Typen, die bei einer bestimmten Bitzahl 
möglichst schnell berechnet werden können, letztere für die 
kleinstmöglichen Typen mit mindestens der angegebenen Bitzahl.

Da viele Compiler die ISO-Norm immer noch nicht umsetzen (obwohl die 
aktuell gültige Version schon 8 Jahre alt ist), bietet nicht jeder 
diesen Header an. Entweder deshalb, oder weil der Programmierer nichts 
von <stdint.h> wußte, werden oft eigene Namen definiert. Aber bitte 
nicht mit #define, sondern mit typedef.

> Einfach nur int ist Definitionssache: C-Spezifikation sagt: mehr oder
> gleich viel Bits wie short, aber weniger oder gleich viel Bits wie
> long.

... und mindestens einen Wertebereich von -32767 bis 32767.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.