在C++中设置基于操作系统的文件路径

Set the Filepath Based Upon OS in C++

本文关键字:操作系统 文件 路径 C++ 设置      更新时间:2023-10-16

我想根据C++中的操作系统设置文件路径。

我已经研究了通过预处理器调用来实现这一点的方法,但不知道这将如何帮助我在程序本身中设置文件路径。

伪代码大致如下:

string file_path; if WINDOWS_OS: file_path = <windows file path> else if MAC_OS: file_path = <mac file path>

我希望有一个比我更聪明的人能够引导我找到实现这一目标的最佳方式。谢谢

预处理器在编译时运行。一旦编译器完成,程序的最终可执行版本就完成了。该可执行文件只能在一个平台(Windows、Mac或Linux(上运行。

因此,没有必要在运行时检查您使用的主机类型。

您编写的代码将在代码运行时显示以检查主机类型。这在C++中是不必要或不合适的。像c#这样的语言创建可以在三个平台中的任何一个平台上解释的字节码,它会在运行时检查主机类型,但不会检查c++。

以下是一个示例标头,它在编译时使用预处理器检查主机类型(取自"如何在C预处理器中可靠地检测Mac OS X、iOS、Linux、Windows?"(:

#ifdef _WIN32
//define something for Windows (32-bit and 64-bit, this part is common)
#ifdef _WIN64
//define something for Windows (64-bit only)
#else
//define something for Windows (32-bit only)
#endif
#elif __APPLE__
#include "TargetConditionals.h"
#if TARGET_IPHONE_SIMULATOR
// iOS Simulator
#elif TARGET_OS_IPHONE
// iOS device
#elif TARGET_OS_MAC
// Other kinds of Mac OS
#else
#   error "Unknown Apple platform"
#endif
#elif __linux__
// linux
#elif __unix__ // all unices not caught above
// Unix
#elif defined(_POSIX_VERSION)
// POSIX
#else
#   error "Unknown compiler"
#endif

我对你的问题还是有点困惑。您是否要求为每个操作系统设置文件路径的正确方法?