今天为了弄明白用什么宏来区分linux平台,特意写了个小程序试了一下。
代码如下:
#include <stdio.h>
int main(int argc, char *argv[])
{
#ifdef LINUX
printf("LINUX/n");
#endif
#ifdef _LINUX
printf("_LINUX/n");
#endif
#ifdef __LINUX
printf("__LINUX/n");
#endif
#ifdef _LINUX_
printf("_LINUX_/n");
#endif
#ifdef __LINUX__
printf("__LINUX__/n");
#endif
#ifdef linux
printf("linux/n");
#endif
#ifdef _linux
printf("_linux/n");
#endif
#ifdef __linux
printf("__linux/n");
#endif
#ifdef _linux_
printf("_linux_/n");
#endif
#ifdef __linux__
printf("__linux__/n");
#endif
#ifdef GNU
printf("GNU/n");
#endif
#ifdef _GNU
printf("_GNU/n");
#endif
#ifdef __GNU
printf("__GNU/n");
#endif
#ifdef _GNU_
printf("_GNU_/n");
#endif
#ifdef __GNU__
printf("__GNU__/n");
#endif
#if defined(gnu) || defined(_gnu) || defined(__gnu) || defined(_gnu_) || defined(__gnu__)
printf("*gnu*/n");
#endif
return 0;
}
运行结果:
linux
__linux
__linux__