long vs. int?
-
Hi,
wo zum geier ist der unterschied zwischen den beiden?
Beide sind gleich groß (32 Bit) aber trotzdem ist ein DWORD noch immer ein unsigned long und kein unsigned int?
Wozu gibt es long wenn int genau so groß ist? Wo sind die unterschiede?
-
unterschiede gibts, wenn die ersten 64bit compiler draussen sind, denn dann ist long 64 bit lang
-
DAS ist alles? Sonst nichts???
-
looooooooooooooooool
-
Ein DWORD garantiert dir, dass es, egal auf welcher Plattform, 4 byte lang ist. Bei long/int ist das nicht der Fall, da gilt lediglich sizeof(long) >= sizeof(int).
In der Vorzeit, vor langer, langer Weile wars mal so, dass sie von 16 auf 32 bit umgestellt haben. Damals wars auf vielen Plattformen üblich, dass ein int 16 bit und ein long 32 bit hatte. Das kann sich aber alles mit der Zeit ändern.
-
> DAS ist alles? Sonst nichts??? Also wenn der Unterschied zwischen 32bit und 64bit für dich "nichts" ist, dann solltest du das Programmieren aufgeben. int und long sind nicht standardisiert, kommt immer auf Platform drauf an. Deshalb hat z.B. MS ihre Win32 z.B. mit den DWORD versehen, damit es keine Probleme gibt.
-
long ist bei mir wie int 32 bit groß!
wieso sind die dinger nicht standardisiert?
-
unterschiede gibts, wenn die ersten 64bit compiler draussen sind, denn dann ist long 64 bit lang
Hm, dann versteh ich das System irgendwie nicht. Short ist 16 bit und somit WORD, int ist abhängig vom OS, bei 32bit also 32 bit. Long ist laut einiger Websites bereits jetzt 64 bit groß.
Wieso aber soll long auf 64er OS dann 64 bit haben (was es angeblich jetzt schon hat) und int immer noch 32? Müsste nicht, der Logik entsprechend, int 64 bit groß werden, denn dies ist ja immer die native Größe wie jetzt auch.
Damals 16 bit, heute 32 und dann irgendwann mal 64, oder nicht?
Warum sollte sich dann long verändern?
-
Es ist standardisiert dass
short <= int <= longso einfach ist das.
wenn int zB immer 32bit hätte, täte man sich auf zB 128Bit systemen etwas blöd, weil man dafür plötzlich keinen typen hätte. genauso auf einem 16bit system...
deswegen gibt es typedefs die eine fixe größe garantieren. wie zB DWORD, Int32, etc.
-
Die C++ Implementation legt die Grösse fest. Nichts das Betriebssystem.
-
Ynnus schrieb:
Short ist 16 bit und somit WORD
short ist signed, WORD ist unsigned
Ynnus schrieb:
Müsste nicht, der Logik entsprechend, int 64 bit groß werden, denn dies ist ja immer die native Größe wie jetzt auch.
klar, wird auch so sein.
Ynnus schrieb:
Warum sollte sich dann long verändern?
weil long nicht kleiner sein darf als int. int wird dann 64 bits breit sein und long auch, oder long wird noch mehr bits haben