Oracle Solaris Studio 12.2:C++ 用户指南

警告

如果使用 -xchar=unsigned,则在将 char 与预定义的系统宏进行比较时要特别小心,因为宏中的值可能带符号。任何返回错误代码而且可以用宏来访问错误代码的例程通常是这样的。错误代码一般是负值,因此在将 char 与此类宏中的值进行比较时,结果始终为假。负数永远不等于无符号类型的值。

强烈建议不要使用 -xchar 为通过库导出的任何接口编译例程。Solaris ABI 将 char 类型指定为带符号,并且系统库的行为也与此相适应。目前还未对系统库针对将 char 指定为无符号的效果进行广泛测试。可以不使用该选项,而是修改代码使其与 char 类型是否带符号没有关联。char 类型的符号随编译器和操作系统的不同而不同。