Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ 코드가 32비트 또는 64비트로 컴파일되었는지 확인하는 방법

C++에서 컴파일 아키텍처(32비트/64비트) 확인하기

C++ 표준에는 프로그램이 실행되는 환경의 아키텍처를 직접 확인하는 기능이 제공되지 않습니다. 대신 전처리기 매크로(preprocessor macro)를 활용하면 컴파일 시점에 시스템이 32비트인지 64비트인지 판별할 수 있습니다.

Windows 환경에서는 _WIN64_WIN32라는 두 가지 매크로를 사용할 수 있습니다. 코드가 64비트로 컴파일되면 _WIN64 매크로가 정의되며, 32비트로 컴파일되면 _WIN32 매크로가 정의됩니다. 이러한 매크로 검사를 통해 현재 빌드된 아키텍처를 쉽게 식별할 수 있습니다.

예제 코드

#include <iostream>
using namespace std;

int main() {
    #ifdef _WIN64
        cout << "This is 64 bit system" << endl;
    #elif _WIN32
        cout << "This is 32 bit system" << endl;
    #endif
}

출력 결과

This is 64 bit system

주의할 점

64비트 Windows에서는 _WIN32도 함께 정의된다는 점에 유의해야 합니다. 따라서 위 예제처럼 반드시 _WIN64를 먼저 검사해야 올바른 결과를 얻을 수 있습니다.

또한 Windows가 아닌 플랫폼(Linux, macOS 등)에서는 __x86_64__, _M_X64, __LP64__ 같은 컴파일러별 매크로를 활용하면 유사한 방식으로 64비트 환경 여부를 확인할 수 있습니다.