010
23.05.2003, 12:42 Uhr
ao
(Operator)
|
Zitat: |
~0xdeadbeef postete
C++: |
double d[100]; /* Länge = 100 * sizeof(double) = 100 * 32 = 3200 */ unsigned long long ll[200]; /* Länge = 200 * sizeof(unsigned long long) = 200 * 64 = 12800 */
|
Jeweils auf einer 32-bit-Maschine. Auf 64-bit-Prozessoren sieht das wieder ganz anders aus.
|
Halt, sizeof liefert die Größe in Bytes, nicht in Bits. Es kann natürlich Implementierungen geben, die 32 Bytes große doubles haben, aber mir ist keine bekannt.
Gaaaanz genau genommen stimmt das auch nicht. sizeof liefert definitionsgemäß die Größe in Vielfachen von sizeof (char), und es gibt tatsächlich Plattformen (z.B. manche DSPs), bei denen ein char nicht 8 Bit (= 1 Byte ) groß ist.
ao |