c - 用C语言开发的程序可以知道是哪个操作系统编译的吗?

标签 c operating-system

我正在用 C 语言开发一个 API 多平台,我需要知道是否有办法知道哪个操作系统正在编译它。

例如,通过如下的预编译指令:

#ifdef LINUX
#include<linuxlib.h>
#elif OSX
#include<osxlib.h>
#elif WINDOWS
#include<rwindowslib.h>

最佳答案

这里有一些信息:

#if defined(__LINUX__)
// Linux, Android, MacOS
#if defined(__ANDROID__)
// Android
#elif defined(__APPLE__)
// MacOS
#else
// Linux or its flavor
#endif
#elif defined(WIN32)
// Windows targets must have WIN32 (_WIN32)
#endif

以下是可以在各种平台上定义的内容的大量列表: http://sourceforge.net/p/predef/wiki/OperatingSystems/

关于c - 用C语言开发的程序可以知道是哪个操作系统编译的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21805587/

相关文章:

c++ - 使用 fork() 的子进程和父进程

c - C 中指针不保存值

c - 在c中的通用链表上使用选择排序

c++ - 创建(和链接)库时的符号解析

c++ - 这段代码创建了多少个变量 C 的拷贝?

c - C 程序中 atexit() 函数的任何小实用示例

c - 这段代码中哪些变量部分存储到堆栈中?

C - 尝试取 2 个数字的 mod 时出现奇怪的错误

c++ - 无法检索 effect.fx 文件

android - 即使应用程序被杀死,也会在特定时间从 Android 操作系统获取通知