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?
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.
Die "Größe" einer Variable kannst du dir im Zweifelsfall mit sizeof(int), compiliert für dein Zielsystem, ausgeben lassen.
@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.
Danke meine Frage bezog sich auf AVR-GCC (hab ich dummerweise vergessen zu erwähnen) Ich denke jetzt ist alles klar
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.