-qchars (-fsigned-char , -funsigned-char)

适用的调用

表 1. 接受给定选项的调用
选项 xlc (编译 C) xlC (编译 C++) xlclang(编译 C) xlclang++(编译 C++)
-qchars
-fsigned-char, -funsigned-char    
注: 此表中仅列出典型调用。 对于所有基本调用及其等效特殊调用,您可以参阅 编译器调用的完整列表

类别

浮点和整数控件

等效编译指示

表 2。 两个类别的调用的编译指示等效项
xlc/xlC 和其他遗留的调用命令 xlclang/xlclang + + 调用命令
#pragma 个选项字符, #pragma 个字符

用途

确定类型为 char 的所有变量是视为 signed 还是 unsigned

语法

读取语法图跳过可视语法图  -f unsignedsigned char
读取语法图跳过可视语法图  -q chars = unsignedsigned

编译指示语法

读取语法图跳过可视语法图 # pragma chars ( unsignedsigned )

缺省值

-funsigned-char 或 -qchars=unsigned

参数

unsigned
类型为 char 的变量将被视为 unsigned char
已签名
类型为 char 的变量将被视为 signed char

使用量

无论此 选项或 编译指示的设置如何,出于类型兼容性检查 或 C++ 重载的目的,仍认为 char 的类型与类型 unsigned charsigned char 不同。

基于 XL 的前端开始实用程序必须出现在任何源语句之前。 如果在源文件中多次指定编译指示,那么第一个编译指示将优先。 指定后,该编译指令将应用于整个文件,且无法禁用;如果源文件中包含任何您想要编译的函数,且这些函数中不包含 #pragma字符 ,请将这些函数放置在不同的文件中。基于 XL 的前端端

预定义的宏

  • signed 生效时,将 _CHAR_SIGNED 和 __CHAR_SIGNED__ 定义为 1; 否则,将其定义为 undefined。
  • unsigned 生效时,将 _CHAR_UNSIGNED 和 __CHAR_UNSIGNED__ 定义为 1; 否则,将取消定义它们。

示例

要在编译 myprogram.c时将所有 char 类型视为 signed ,请输入:
xlc myprogram.c -qchars=signed