Hi,
warum benutzt man statt "unsigned int" den Datentyp "size_t" z.B. bei Feldgrößen
Spart man damit Laufzeit oder Speicher? Oder handelt es sich einfach nur um ein Relikt aus C?
Dank im voraus
HtM
NZC
Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge
Ein int ist ein int, ein size_t ist ein size_t...
Vorteil eines eigenen Datentypes für Größenangaben:
Ob 4,8,16,32 oder 64 Bit Maschine size_t ist immer verwendbar ohne
daß man nachdenken muss. Es ist auch sichergestellt, daß der
größte mögliche Datentyp dargestellt werden kann.
Beispiel Horrorszenario: 64 Bit Prozessor, aber 16 Bit "int" Datentyp.
Mit int klappt alles prima, bis Du mal einen wirklich großen Speicherbereich
allozierst.
j. - www.obira.de
Danke für die Antwort, habs kapiert soweit, sollte mir aber nochmal die Definition von size_t ansehen.
Aber noch ne kleine Zusatzfrage: Wenn durch eine Berechnung ein größerer Wert entsteht als z.B. ein 16 Bit "int" aufnehmen kann, was für einen Wert enthält er dann letzendlich? Ist der Wert rein zufällig oder steckt da System hinter?
HtM
NZC
Es gibt natürlich ein System. Bei vorzeichenlosen Werten sollte das Ergebnis
Modulo 2^Bitbreite sein. Bei vorzeichenbehafteten auch, aber das
Resultat ist etwas kniffliger zu interpretieren :)
j. - www.obira.de