0

我有 Microsoft C++ 编译器经验。在那里,您可以非常简单地调整使用/不使用 UNICODE 编译路径。以下构造是合法且完全可能的:

#ifdef UNICODE
typedef std::wstring string;
#else
typedef std::string string;
#endif

但是如何使用 Apple LLVM 编译器处理相同的情况?

PS GCC 提示也将不胜感激。

更新: 在 Windows 编程中,最好使用 UNICODE 字符串(特别是如果您大量使用基于 UNICODE 的 WinAPI)。是否有任何理由在 LLVM 或 GCC 上为 OSX 和 iOS 使用 wstring 而不是字符串(字符集差异除外)?

4

1 回答 1

2

有争议的是,您甚至应该关心支持多种类型的字符串(这取决于应用程序),但也许以下内容应该有效:

#if defined(_WIN32) && defined(UNICODE)
    typedef std::wstring string;
#else
    typedef std::string string;
#endif

另外,请阅读以下帖子以了解有关不同类型的字符串及其用例的所有信息:std::wstring VS std::string

于 2013-05-17T12:19:39.477 回答