char verwendet
mindestens 8 Bit, short int verwendet
mindestens 16 Bit, int verwendet
mindestens 16 Bit, heutzutage aber meistens 32, long int verwendet
mindestens 32 Bit.
Ansonsten gibt es noch die Regel, dass char <= short int <= int <= long int ist.
char kann also auch genauso breit wie long int sein.
Es gibt aber auch Systeme auf denen char 9 oder 63 Bit breit ist.
Das wären heutzutage aber große Ausnahmen.
Glocke hat geschrieben:Bei mir scheint es 32 Bit zu verwenden. Die
sizeof-Funktion liefert mir für Short 2 (klar, 2 * 8 Bit = 16 Bit), für Long 4 (auch klar, weil 4 * 8 Bit = 32 Bit) und für Int ebenfalls 4. Jedoch habe ich keinen Vergleich zu einem anderen System. Wenn sich das wirklich unterscheidet, sollte ich da (ich möchte plattformunabhängig programmieren) auf Int verzichten und explizit Short oder Long nehmen?
Du solltest möglichst so programmieren, dass es in die Mindestgrößen passt und Du nicht auf Überläufe angewiesen bist (die bei breiteren Datentypen ja nicht stattfinden würden...).
Realistisch gesehen kannst Du aber durchaus davon ausgehen, dass die bekannten Größen gelten. Du solltest aber davon ausgehen, dass (long int) irgendwann mal 64 Bit breit sein könnte, damit man nicht immer (long long int) schreiben muss... bzw. man konfiguriert den Compiler entsprechend. In C gibt es daher bereits Datentypen, die sich auf eine Breite festlegen.
Mit
limits.h kannst Du Deine Software absichern, so dass sie auf unbekannten Systemen warnt oder komplett den Dienst verweigert.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.