>백엔드 개발 >C++ >C 전처리기 컴파일 중에 운영 체제를 안정적으로 감지하려면 어떻게 해야 합니까?

C 전처리기 컴파일 중에 운영 체제를 안정적으로 감지하려면 어떻게 해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-15 07:10:14318검색

How Can I Reliably Detect the Operating System During C Preprocessor Compilation?

C에서 운영 체제 전처리기 감지

전처리기 처리 중에 운영 체제를 감지하는 것은 크로스 플랫폼 C/C 코드 작성에 필수적입니다. Mac OS X, iOS, Linux 및 Windows에서 이를 안정적으로 달성하는 방법은 다음과 같습니다.


대부분의 컴파일러는 운영 체제를 식별하는 매크로를 정의합니다. 전처리기 감지의 경우 이러한 사전 정의된 매크로가 중요합니다. 예를 들어 GCC에는 다음을 포함하는 포괄적인 목록이 있습니다.

</p>
<h1>if 정의된 경우(WIN32) || 정의됨(_WIN32) || 정의됨(__WIN32__) || 정의됨(__NT__)</h1>
<pre class="brush:php;toolbar:false">// Define something for Windows (32-bit and 64-bit)
#ifdef _WIN64
    // Define something unique for Windows (64-bit only)
#else
    // Define something specific for Windows (32-bit only)
#endif

elif APPLE

#include <TargetConditionals.h>
#if TARGET_IPHONE_SIMULATOR
    // iOS, tvOS, or watchOS Simulator
#elif TARGET_OS_MACCATALYST
    // Mac's Catalyst (bridging iOS API into Mac)
#elif TARGET_OS_IPHONE
    // iOS, tvOS, or watchOS device
#elif TARGET_OS_MAC
    // Other Apple platforms
#else
    // Error: Unknown Apple platform
#endif

elif ANDROID

// Handled elsewhere (Android typically conforms to __linux__)

elif linux

// Linux

elif unix

// Unix

elif Defined(_POSIX_VERSION)

// POSIX

else

// Error: Unknown compiler

endif

이러한 매크로를 사용하면 안정적으로 감지할 수 있습니다. 전처리기 처리 중에 운영 체제를 변경하고 그에 따라 코드를 맞춤화하여 다양한 호환성을 보장합니다. 플랫폼입니다.

위 내용은 C 전처리기 컴파일 중에 운영 체제를 안정적으로 감지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.