我可以如何确定预处理器中的操作系统和操作系统版本?
我想划分 Solaris 10 和其他操作系统。
正如 Jan Dvorak 所说,这取决于您是指主机系统(您正在编译的系统)还是目标系统(您的应用程序将在其上运行的系统)。
如果是后者,则无法执行您想要的操作,原因很简单,该信息仅在目标系统的运行时可用,而预处理器仅在编译期间运行。
如果是前者,你的编译器应该提供预定义的 MACROS,它会给你一些关于你正在编译的系统的信息。例如,在 Windows 上使用 MingW 或 MSVC 进行编译时,_WIN32
将定义宏以允许您有条件地包含代码。
但是,这不太可能为您提供您寻求的信息,因为操作系统版本通常在编译期间无关紧要 - 您想要的信息是您正在编译的操作系统(例如:Windows、Solaris)、哪个编译器版本等。