📜  用C / C++编写与操作系统无关的代码

📅  最后修改于: 2021-05-26 01:44:00             🧑  作者: Mango

如何编写一个列出目录的所有内容的实用程序,而与操作系统无关。

大多数C / C++编译器都定义可用于检测操作系统的宏。例如,在GCC中,以下是常见的宏。

_WIN32 : Defined for both 32 bit and 64 bit windows OS.
_WIN64 : Defined for 64 bit windows OS.

unix, __unix, __unix__ : Defined in UNIX OS

__APPLE__, __MACH__ : Defined in Mac OS


Source : StackOverflow

在Windows中,我们通过dir调用列出所有目录,在大多数其他操作系统中使用“ ls”。下面是简单的C++实现,用于列出与操作系统无关的文件夹目录。

// C++ program to list all directories.
#include 
using namespace std;
int main()
{
#ifdef _WIN32
    system("dir");
#else
    system("ls");
#endif
    return 0;
}

上面的与操作系统无关的代码与Java的平台独立性完全不同。在Java,中间字节代码是处理平台依赖项的非常干净的方法。在这里,我们必须记住特定于编译器的宏,并使用笨拙的#ifdef和#else编写代码,最重要的是,我们需要为每个操作系统重新编译代码。

要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”