今天为了弄明白用什么宏来区分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__
本文通过一个小程序展示了在Linux环境下如何使用宏进行平台区分。代码中测试了多种以"LINUX"、"_LINUX"、"__LINUX"等开头的宏定义,并揭示了在Linux下真正有效的宏为"linux"、"__linux"和"__linux__"。


被折叠的 条评论
为什么被折叠?



