我想使程序能够工作并在 WIN \ Linux 中进行编译。
我想了解有关运行程序的 OS 的信息。
此外,我想有一个变量来决定我要执行的代码。

我想到了一个经过预处理的代码,以输入我描述的控制变量。
所以,我必须有这样的东西:

#  //a preprocess code to detect the os
# define controllingVar // ?

我使用C++;

最佳答案

您可以检查是否已定义WIN32宏:

#ifdef WIN32
   // do windows stuff
#else
   // do GNU/Linux stuff
#endif

请注意,在某些编译器上,您可能还需要检查_WIN32,如wikipedia中所述。

举个例子:
#ifdef WIN32
   void foo() {
       std::cout << "I'm on Windows!\n";
   }
#else
   void foo() {
       std::cout << "I'm on GNU/Linux!\n";
   }
#endif

编辑:由于您要询问每个操作系统的不同main,因此以下示例:
int main() {
#ifdef WIN32
   // do whatever you want when executing in a Windows OS
#else
   // do the same for GNU/Linux OS.
#endif
}

您也可以使用不同的main:
#ifdef WIN32
   int main() {
       //windows main
   }
#else
   int main() {
       //GNU/Linux main
   }
#endif

关于c++ - C++上的跨平台编程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9977884/

10-12 00:41