gpt4 book ai didi

c++ - 使用 -fshort-wchar 的含义

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:25:28 27 4
gpt4 key购买 nike

在 Mac OS X 系统上浏览文件 wchar.h 时,我发现当 __cplusplust 未定义且 wchar_t 的最大大小为 2 个字节(通过使用编译器选项 -fshort-wchar)。

对于C程序来说,如果定义了-fshort-wchar,似乎是不允许使用这样的函数的。我想知道当使用 -fshort-wchar 时使用 wchar_t 函数意味着什么?

您可能想知道为什么我需要使用 -fshort-wchar。因为,我正在移植一个最初为 Windows 编写的应用程序,其中 wchar_t 的大小是两个字节。保存在 wchar_t 字符串中的数据被写入文件并在两个应用程序之间交换。

在不同平台上处理 wchar_t 可变性的好方法是什么? Windows 上的假设是 wchar_t 是 16 位的。

最佳答案

如果您想使用 wchar_t< 的正确(32 位)定义与标准库或第三方库代码的任何部分交互,则

-fshort-wchar 不可用。它可行的情况非常有限,可能主要与独立实现/嵌入式内容有关。

在移植您正在处理的 Windows 应用程序的情况下,我认为您应该做一个搜索和替换以将 wchar_t 的这些使用更改为 WCHAR(您可以自由定义)或 char16_t(由 C11 定义,您可以在 C11 之前提供自己的定义)。

关于c++ - 使用 -fshort-wchar 的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15286568/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com