__GNUC__ _MSC_VER _POSIX_SEMAPHORES 宏

几个比较有用有趣的predefine预定义的宏,用于跨平台,记录一下,学习

 

#include <unistd.h>

#if defined __GNUC__
#define a "__GNUC__ defined"
#else
#define a "__GNUC__ not defined"
#endif

#if defined _MSC_VER
#define b "_MSC_VER defined"
#else
#define b "_MSC_VER not defined"
#endif

#ifdef _POSIX_SEMAPHORES
#define c "_POSIX_SEMAPHORES defined"
#else
#define c "_POSIX_SEMAPHORES not defined"
#endif

#include <iostream>
using namespace std;

int main()
{
    cout<<a<<endl;
    cout<<b<<endl;
    cout<<c<<endl;
}

 

只在linux下跑了一下,结果为:

__GNUC__ defined
_MSC_VER not defined
__POSIX__SEMAPHORES defined

 

 

posted on 2012-08-08 14:11  kkmm  阅读(735)  评论(0编辑  收藏  举报