如何在预处理器中确定操作系统和操作系统版本?

时间:2012-12-25 07:39:38

标签: c-preprocessor

我可以在预处理器中确定操作系统和操作系统版本吗?

我想要使用Solaris 10和其他操作系统。

2 个答案:

答案 0 :(得分:1)

与Jan Dvorak一样,这取决于您是指主机系统(您正在编译的系统)还是目标系统(您的应用程序将运行的系统)。

如果后者,则无法执行您想要的操作,原因很简单,此信息仅在目标系统上的运行时可用,而预编译器仅在编译期间运行。

如果,您的编译器应该提供预定义的MACROS,它将为您提供有关您正在编译的系统的一些信息。例如,在Windows上使用MingW或MSVC进行编译时,将定义_WIN32宏以允许您有条件地包含代码。

但是,这不太可能为您提供所需的信息,因为操作系统版本在编译期间通常无关紧要 - 您想要的信息是您正在编译的操作系统(例如:Windows,Solaris) ,哪个编译器版本等

答案 1 :(得分:0)

为了扩展skoy的答案,对于任何想要确定正在编译程序的系统的信息的人来说,sourceforge项目上有一个wiki页面,其中列出了一些用于几个不同事物的预定义宏,例如: operating systemsarchitecturescompilers