CPP各个操作系统和平台的宏定义

#if TARGET_OS_MAC
#if TARGET_OS_IPHONE
#if TARGET_IPHONE_SIMULATOR
#if TARGET_OS_EMBEDDED

#ifdef __ANDROID__

#if defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
#if defined(__IPHONE_OS_MIN_VERSION_REQUIRED)

//Windows
#ifdef WIN32
#ifdef _WIN32
//64位Windows
#ifdef _WIN64
//WINCE
#ifdef _WIN32_WCE

#ifdef __FreeBSD__
#ifdef __minix

//Symbian
#ifdef __SYMBIAN32__

#if __linux__
#if __unix__
#if defined(_POSIX_VERSION)

WIN32/_WIN32是所有的Windows平台,_WIN64是子集
__APPLE__是苹果平台的全集,ARGET_IPHONE_SIMULATOR 是 TARGET_OS_IPHONE 的子集,TARGET_OS_IPHONE 是 TARGET_OS_MAC的子集

注意不要用#ifdef TARGET_IPHONE_SIMULATOR这种方式判断, 因为在iOS真机上, TARGET_IPHONE_SIMULATOR被定义为0。

举例子

#ifdef _WIN32  
   //Windows平台
   #ifdef _WIN64  
      //64位Window平台
   #endif  
#elif __APPLE__  
    #include "TargetConditionals.h"  
    #if TARGET_IPHONE_SIMULATOR  
         // iOS 模拟器 
    #elif TARGET_OS_IPHONE  
        // iOS 设备  
    #elif TARGET_OS_MAC  
        // Mac OS X  
    #else  
        //未知的 Apple 平台  
    #endif 
#elif defined(__ANDROID__) 
   //Android
#elif __linux__  
    // linux  
#elif __unix__   
    // Unix  
#elif defined(_POSIX_VERSION)  
    // POSIX  
#else  
   //未知的编译器  
#endif 
此条目发表在CPP分类目录,贴了, , , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

你必须启用JavaScript