Probleme mit 16/32 und 64 Bit
-
Hey @all,
Weiß jemand wie ich unterscheiden kann auf welchem System ich mich gerade befinde?
Also gemeint ist ob ich mich auf einem 16 Bit System, 32 Bit System oder 64 Bit System befinde? Gibt's da vielleicht Preprocessor Variablen die mir das ermöglichen?Lg _freeze_
-
sizeof(int) ?
-
Nö, eher sizeof(void*). Wieso sollte man das wissen wollen?
-
Wenn ich mich recht erinnere hängt sizeof(void*) bei DOS vom Speichermodell ab, obwohl wir bei einem 16-bit-System bleiben. Die Frage nach der Prüfung muss davon abhängen, was konkret es in Hinblick C++ bedeuten soll, dass ein gegebenes System ein 16-, 32- oder 64-bit System ist.
-
Eine standardkonforme Möglichkeit gibt es hier nicht. Du kannst lediglich durch diverse Compiler Makros herausfinden, für welches System kompiliert wird. Der MSC definiert zB _WIN32 und _WIN64 für 32 und 64 Bit Windows.
Darüber hinaus bieten Betriebssysteme auch Laufzeitinformationen zur Systemversion. Unter Windows gibt es ua die Funktion GetVersionEx.
-
Mit Windows und der WinApi hat man da kein Problem. Dort gibt es ausreichend Möglichkeiten.