Seite 1 von 1

länge von long

Verfasst: Sa Dez 27, 2008 6:00 pm
von cloidnerux
Ich hab folgendes Programm Geschrieben:

Code: Alles auswählen

#include <iostream>
#include <conio.h>

int main()
{
    std::cout << "Länge von Int:" << sizeof(unsigned int) << std::endl;
    std::cout << "Länge von long:" << sizeof(unsigned long) << std::endl;
    std::cout << "Länge von long long:" << sizeof(unsigned long long) << std::endl;
    getch();     //ich weiß, das tuht man nicht
    return 0;
}
Bei der Auführung:

Code: Alles auswählen

Lõnge von Int:4
Lõnge von long:4
Lõnge von long long:8
Heißt das, das es keinen unterschied zwischen int und long gibt?

Re: länge von long

Verfasst: Sa Dez 27, 2008 8:08 pm
von Dirty Oerti
Das ist je nach Computer, auf dem du das ausführst unterschiedlich.
Auf älteren Modellen ist ein int nämlich nur 2 Byte groß...

Re: länge von long

Verfasst: Sa Dez 27, 2008 8:13 pm
von cloidnerux
ähm
Lõnge von Int:4
Lõnge von long:4
Hab das ganze unter Windows XP 32 Bit getestet.
Hier war ein INt 4 Byte lang, long auch.
Ist das ganze nur unter Windows so oder generell?

Re: länge von long

Verfasst: Sa Dez 27, 2008 8:28 pm
von nufan
cloidnerux hat geschrieben:Ist das ganze nur unter Windows so oder generell?
Bei mir kommt unter Ubuntu das gleiche.

Re: länge von long

Verfasst: Sa Dez 27, 2008 8:33 pm
von cloidnerux
Bei mir kommt unter Ubuntu das gleiche.
Ist aber iwi schwachsinnig. Wozu gibt es denn den bezeichner long, wenn er nicht mehr als int speichern kann?
Aber long ist warscheinlich nur ein Überbleibsel aus 16-Bit zeiten, wo int noch 2-Byte länge hatte.
Denn wenn long 8-Byte belege, dann wäre long long unötig. und ältere Programme würden evt. net richtig laufen.
Scheiß Abwärtskompatibilität.

Re: länge von long

Verfasst: Sa Dez 27, 2008 9:38 pm
von Dirty Oerti
Dirty Oerti hat geschrieben:Das ist je nach Computer, auf dem du das ausführst unterschiedlich.
Wenn ich es schreien könnte, dann würde ich.^^
das hängt von deiner Hardware ab. Aktuelle Computer liefern alle das gleiche Ergebnis wie das von deinem Computer.

Re: länge von long

Verfasst: Sa Dez 27, 2008 10:01 pm
von nufan
Dirty Oerti hat geschrieben:Wenn ich es schreien könnte, dann würde ich.^^
Kannst ja eine mp3 aufnehmen und uploaden :D

Re: länge von long

Verfasst: Sa Dez 27, 2008 10:22 pm
von +Fuss+
Dafür haben wir ja extra das "Medien-Forum".

Bei mir kommt allerdings auch 4 4 8 raus, was ja kein Wunder ist, wie oben erklärt wurde...

Re: länge von long

Verfasst: So Dez 28, 2008 11:31 am
von Kerli
Die Größe der Datentypen hängen von vielen Faktoren ab. Dazu zählen neben der Hardware aber auch vor allem auch die verschiedenen Standards und Betriebssysteme und damit natürlich auch die Compiler.

Im C bzw. C++ Standard ist zum Beispiel nur garantiert, dass ein char 1 Byte groß ist, es ist aber nicht einmal sicher, dass dieses Byte auch aus 8 Bit besteht :)
Für die anderen Datentypen gilt laut Standard nur, dass die "kleineren" Datentypen nicht größer sein dürfen als die "größeren". Ein int ist also garantiert nicht größer als ein long.

Wer eine garantierte Bitbreite braucht der sollte sich einmal die Integer-Bibliothek von Boost anschauen.

Re: länge von long

Verfasst: Di Dez 30, 2008 6:29 am
von Xin
cloidnerux hat geschrieben:Ist aber iwi schwachsinnig. Wozu gibt es denn den bezeichner long, wenn er nicht mehr als int speichern kann?
Aber long ist warscheinlich nur ein Überbleibsel aus 16-Bit zeiten, wo int noch 2-Byte länge hatte.
Denn wenn long 8-Byte belege, dann wäre long long unötig. und ältere Programme würden evt. net richtig laufen.
Scheiß Abwärtskompatibilität.
long wird vermutlich 64 Bit groß werden, wobei long long dann 128 Bit würde.

int ist schließlich auch von 2 auf 4 Byte gewachsen.

Das ist in den meisten Fällen auch kein Problem, denn nur weil kleine Zahlen gespeichert werden, läuft ein long dann ja nicht über.