Sun Studio 12:C 用户指南

B.2.151 -xustr={ascii_utf16_ushort| no}

如果您需要支持使用 ISO10646 UTF-16 串文字的国际化应用程序,请使用此选项。换句话说,如果代码中包含您希望在目标文件中由编译器转换成 UTF-16 字符串的串文字,请使用该选项。如果不使用该选项,编译器既不生成也不识别 16 位的字符串文字。该选项使编译器可以将 U"ASCII_string" 串文字识别成无符号短整型数组。因为这样的字符串还不属于任何标准,所以该选项的作用是使非标准 C++ 得以识别。

通过指定 -xustr=no,可以关闭编译器识别 U"ASCII_string" 串文字。该选项在命令行上最右侧的实例覆盖了先前的所有实例。

缺省值为 -xustr=no。如果指定了没有参数的 -xustr,编译器将不接受该选项,而是发出一个警告。如果 C 或 C++ 标准定义了语法的含义,那么缺省设置是可以更改的。

指定 -xustr=ascii_utf16_ushort 时未指定 U"ASCII_string" 串文字不是错误。

不是所有文件都必须使用该选项编译。

以下示例显示用引号引起来的串文字,前面带有一个 U。该示例还显示了指定 -xustr 的命令行。


example% cat file.c
const unsigned short *foo = U"foo";
const unsigned short bar[] = U"bar";
const unsigned short *fun() { return
example% cc -xustr=ascii_utf16_ushort file.c -c