ไม่มีวิธีมาตรฐานใน C++ แต่บน Windows ใช้ predefined macros:
_WIN64= defined เมื่อ compile 64-bit_WIN32= defined ทั้ง 32-bit และ 64-bit (Windows)
โค้ดตรวจสอบ
#include <iostream>
using namespace std;
int main() {
#ifdef _WIN64
cout << "64-bit system\n";
#elif _WIN32
cout << "32-bit system\n";
#else
cout << "Non-Windows system\n";
#endif
}
Linux/macOS (GCC/Clang)
#ifdef __x86_64__ // หรือ __LP64__
// 64-bit
#elif defined(__i386__) || defined(__i386)
// 32-bit
#endif
หมายเหตุ: ตรวจสอบขนาด pointer ด้วย sizeof(void*) (4=32-bit, 8=64-bit) ได้ที่ runtime