Wann std::size_t und wann int?
-
cooky451 schrieb:
size_t benutzt man, überraschenderweise, wenn man mit Größen (wie viele Elemente? wie viele Byte?) arbeitet.
Wenn man mit Grössen von Dingen arbeitet die in den Speicher passen/im Speicher liegen.
Wenn man z.B. mit File-Grössen arbeitet sollte man dafür nicht unbedingtsize_tverwenden.Und wenn man's ganz genau nimmt, dann sollte man auch Bits von beliebig grossen Datenstücken nicht mit
size_tzählen, auch wenn diese immer im Speicher liegen. Weil's halt typischerweise 8x mehr Bits gibt als Bytes.
-
Das mit den Bits ist so eine Sache, auf 64 bit Systemen sieht's da schlecht aus. Aber wenn wir mal ehrlich sind, wer muss schon mehr als 2^64 von irgendwas zählen?

-
Wann nehmt ihr eigentlich unsigned int?
<
>
-
cooky451 schrieb:
Das mit den Bits ist so eine Sache, auf 64 bit Systemen sieht's da schlecht aus. Aber wenn wir mal ehrlich sind, wer muss schon mehr als 2^64 von irgendwas zählen?

"And the Lord could not count grains of sand with a 32-bit word." julia ecklar - the eternal flame
-
glühbirne schrieb:
Wann nehmt ihr eigentlich unsigned int?
<
>So ziemlich immer, wenn ich keine Lust habe, <cstddef> zu includen und ueberall std:: zu schreiben.
-
glühbirne schrieb:
Wann nehmt ihr eigentlich unsigned int?
Wann immer eben ein unsigned int benötigt wird. Beispielsweise bei irgendwelchen Bitmasken, da z.B. ein Rechtsshift auf signed int undefiniert ist...
-
cooky451 schrieb:
Das mit den Bits ist so eine Sache, auf 64 bit Systemen sieht's da schlecht aus. Aber wenn wir mal ehrlich sind, wer muss schon mehr als 2^64 von irgendwas zählen?

Graf Zahl?
-
dot schrieb:
da z.B. ein Rechtsshift auf signed int undefiniert ist...
gibt es eigentlich wie in Java so einen vorzeichenlosen shift? (java: >>>)
-
Skym0sh0 schrieb:
dot schrieb:
da z.B. ein Rechtsshift auf signed int undefiniert ist...
gibt es eigentlich wie in Java so einen vorzeichenlosen shift? (java: >>>)
Ähm, was glaubst du ist ein unsigned int!?
-
dot schrieb:
da z.B. ein Rechtsshift auf signed int undefiniert ist...
Ich hätte jetzt gemeint implementation-defined.
-
hustbaer schrieb:
dot schrieb:
da z.B. ein Rechtsshift auf signed int undefiniert ist...
Ich hätte jetzt gemeint implementation-defined.
Stimmt, sry, natürlich implementation-defined, aka nicht portabel und darum gings mir...
