我可以在预处理器中确定操作系统和操作系统版本吗?
我想要使用Solaris 10和其他操作系统。
答案 0 :(得分:1)
与Jan Dvorak一样,这取决于您是指主机系统(您正在编译的系统)还是目标系统(您的应用程序将运行的系统)。
如果后者,则无法执行您想要的操作,原因很简单,此信息仅在目标系统上的运行时可用,而预编译器仅在编译期间运行。
如果前,您的编译器应该提供预定义的MACROS,它将为您提供有关您正在编译的系统的一些信息。例如,在Windows上使用MingW或MSVC进行编译时,将定义_WIN32
宏以允许您有条件地包含代码。
但是,这不太可能为您提供所需的信息,因为操作系统版本在编译期间通常无关紧要 - 您想要的信息是您正在编译的操作系统(例如:Windows,Solaris) ,哪个编译器版本等
答案 1 :(得分:0)
为了扩展skoy的答案,对于任何想要确定正在编译程序的系统的信息的人来说,sourceforge项目上有一个wiki页面,其中列出了一些用于几个不同事物的预定义宏,例如: operating systems,architectures和compilers。