C++-এ আর্কিটেকচার চেক করার জন্য প্রিডিফাইনড ম্যাক্রো ব্যবহার করা হয়। উইন্ডোজের জন্য _WIN64 এবং _WIN32। লিনাক্স/ম্যাক-এ __x86_64__, __i386__, __aarch64__ ইত্যাদি।
উইন্ডোজ-স্পেসিফিক উদাহরণ
#include <iostream>
using namespace std;
int main() {
#ifdef _WIN64
cout << "64-bit system" << endl;
#elif _WIN32
cout << "32-bit system" << endl;
#endif
return 0;
}
আউটপুট (৬৪-বিট সিস্টেমে)
64-bit system
ক্রস-প্ল্যাটফর্ম ম্যাক্রো
| আর্কিটেকচার | ম্যাক্রো |
|---|---|
| x86_64 (64-bit) | __x86_64__, _M_X64 (MSVC) |
| x86 (32-bit) | __i386__, _M_IX86 (MSVC) |
| ARM64 | __aarch64__, _M_ARM64 (MSVC) |
| ARM32 | __arm__, _M_ARM (MSVC) |
রানটাইম চেক (C++11+)
#include <iostream>
#include <cstdint>
int main() {
if (sizeof(void*) == 8) cout << "64-bit";
else if (sizeof(void*) == 4) cout << "32-bit";
return 0;
}
নোট: কম্পাইল টাইম চেক (#ifdef) রানটাইম চেকের চেয়ে ভালো, কারণ ডেড কোড এলিমিনেশন হয়।