[C++]Problem FindWindow

05/01/2011 11:41 MoepMeep#16
[Only registered and activated users can see links. Click Here To Register...]
05/01/2011 13:11 xNopex#17
Quote:
Rewrite the code every time you want to port it to a new operating system?
Die Idee finde ich doch ganz sinnvoll.[/IRONIE]
Nun gut, solange ich weiß, dass ich auf einer 32bit Maschine kompiliere und ich nicht vorhabe meinen Code weiter zu verbreiten, solange kann ich auf diesen Datentyp ja verzichten, auch wenn es schlechter Stil ist.
05/01/2011 13:38 MrSm!th#18
Verstehe den Grund nicht. long ist doch 8 Bytes, also genau die Größe, die ein Pointer auf x64 hat.
05/01/2011 13:56 xNopex#19
Nicht unbedingt. Bei mir ist long 4Bytes groß (sizeof()). Hängt stark von dem verwendeten Compiler ab.

EDIT: long long wäre 8Bytes groß. Was ja dann auch logisch ist. Mit unsigned long long könnte man also auf den Windows-Datentyp verzichten. Jedoch wäre das auf einer 32Bit Maschine Speicherverschwendung.
05/01/2011 19:58 MrSm!th#20
Stimmt nicht ganz, in VS scheint das zwar so zu sein, aber eigentlich hat long laut C++ Standard 8 Bytes!
05/01/2011 20:11 xNopex#21
Quote:
The standard does not specify the size in bytes, but it specifies minimum ranges that various integral types must be able to hold. You can infer minimum size in bytes from it.

Minimum ranges guaranteed by the standard (from "Integer Types In C and C++"):

signed char: -127 to 127
unsigned char: 0 to 255
"plain" char: -127 to 127 or 0 to 255 (depends on default char signedness)
signed short: -32767 to 32767
unsigned short: 0 to 65535
signed int: -32767 to 32767
unsigned int: 0 to 65535
signed long: -2147483647 to 2147483647
unsigned long: 0 to 4294967295
signed long long: -9223372036854775807 to 9223372036854775807
unsigned long long: 0 to 18446744073709551615

Actual platform-specific range values are found in <limits.h> in C, or <climits> in C++ (or even better, templated std::numeric_limits in <limits> header).
Source: [Only registered and activated users can see links. Click Here To Register...]
05/02/2011 17:17 .BritainAndy#22
Ich hab mir auch ein ebook zu C++ geholt indem folgendes steht:
Code:
long l;
Code:
Ein long belegt auf 64-Bit-Prozessoren also beispielsweise 8 Bytes.