【发布时间】:2018-11-12 10:46:05
【问题描述】:
我知道已经有一个标准方法,前缀为L:
wchar_t *test_literal = L"Test";
问题是wchar_t不保证是16位的,但是对于我的项目,我需要一个16位的wchar_t。我也想避免传递-fshort-wchar的要求。
那么,C(不是 C++)是否有任何前缀可以让我声明 UTF-16 字符串文字?
【问题讨论】:
-
"我需要一个 16 位的
wchar_t" - 为什么? -
@melpomene 1. 我在嵌入式平台上。 2. 它是类 Windows API 的一部分。
-
-fshort-wchar有什么问题? -
@melpomene 前缀将成为头文件的一部分,包含在我的库和应用程序中。我不想强制应用程序使用
-fshort-wchar。 -
您最好按原样进行初始化,并提供一个转换函数将文字转换为您用来专门表示 UTF-16 字符的任何类型的数组(
short,@987654330 @), 管他呢。这将在wchar_t和UTF-16不相同的系统上变得更容易。
标签: c unicode string-literals widechar unicode-literals