-qchars (-fsigned-char , -funsigned-char)
适用的调用
| 选项 | xlc (编译 C) | xlC (编译 C++) | xlclang(编译 C) | xlclang++(编译 C++) |
|---|---|---|---|---|
| -qchars | ✓ | ✓ | ✓ | ✓ |
| -fsigned-char, -funsigned-char | ✓ | ✓ |
注: 此表中仅列出典型调用。 对于所有基本调用及其等效特殊调用,您可以参阅 编译器调用的完整列表 。
类别
等效编译指示
| xlc/xlC 和其他遗留的调用命令 | xlclang/xlclang + + 调用命令 |
|---|---|
| #pragma 个选项字符, #pragma 个字符 | 无 |
用途
确定类型为 char 的所有变量是视为 signed 还是 unsigned。
语法
缺省值
-funsigned-char 或 -qchars=unsigned
参数
- unsigned
- 类型为
char的变量将被视为unsigned char。 - 已签名
- 类型为
char的变量将被视为signed char。
使用量
无论此 选项或 编译指示的设置如何,出于类型兼容性检查 或 C++ 重载的目的,仍认为 char 的类型与类型 unsigned
char 和 signed char 不同。
实用程序必须出现在任何源语句之前。 如果在源文件中多次指定编译指示,那么第一个编译指示将优先。 指定后,该编译指令将应用于整个文件,且无法禁用;如果源文件中包含任何您想要编译的函数,且这些函数中不包含 #pragma字符 ,请将这些函数放置在不同的文件中。
预定义的宏
- 当 signed 生效时,将 _CHAR_SIGNED 和 __CHAR_SIGNED__ 定义为 1; 否则,将其定义为 undefined。
- 当 unsigned 生效时,将 _CHAR_UNSIGNED 和 __CHAR_UNSIGNED__ 定义为 1; 否则,将取消定义它们。
示例
要在编译
myprogram.c时将所有 char 类型视为 signed ,请输入:xlc myprogram.c -qchars=signed