007
02.03.2004, 13:45 Uhr
RHBaum
|
Zitat: |
Warum benutzt du da jetzt size_t und nicht unsingned int???
|
Sinn solcher getypten Datentypen ist es, den compiler bestimmen zu lassen, welchen wirklichen datentyp am besten fuer was geeignet ist.
size_t => vorzeichenloser integer der fuer zaehlungen geeignet ist.
damit so iterationen und operationen mit solchen zaehlern recht flott gehen, nimmt er nicht den kleinsten datentyp, sondern den, mit dem es am schnellsten geht. Und das ist bekanntlich der datentyp, der in nen Register des Prozessors am besten passt und was das BS am besten unterstuetzt.
16 bit auf 32 bit prozessor / BS = zusaetzliche Arbeitsschritte zum fuellen der Register. 64 auf 32 bit = alle rechenoperationen mit mehr aufwand, weil es nicht mit einem registerdurchlauf geht.
also unter 16 bit BS wird size_t nen unsigned 16 bit integer sein, unter 32bit BS nen unsigned 32 bit ... etc.
Fuer dich bedeutet das, dass deinen code, wenn er ansi compatibel ist, ohne problebe auf nen 64 bit alpha prozesser (und dessen compiler) portieren koenntest, und dein size_t trotzdem optimal laeuft ....
Ciao ... |