-qupconv(仅限 C)
适用的调用
选项 | xlc (编译 C) | xlC (编译 C++) | xlclang(编译 C) | xlclang++(编译 C++) |
---|---|---|---|---|
-qupconv | ✓ |
注: 此表中仅列出典型调用。 对于所有基本调用及其等效特殊调用,您可以参阅 编译器调用的完整列表 。
类别
等效编译指示
#pragma 选项 [no] upconv
用途
指定在执行整数提升时是否保留 unsigned
规范。
当 noupconv 生效时,在积分促销期间,任何小于 int
的 unsigned
类型都将转换为 int
。 当 upconv 生效时,这些类型将在积分促销期间转换为 unsigned int
。 促销规则不适用于大于 int
的类型。
语法
缺省值
- -qnoupconv 表示除 classic 或 extended 以外的所有语言级别
- 当 经典 或 扩展 语言级别生效时的 -qupconv
使用量
为了与 C 的旧方言兼容,提供了符号保留。 ANSI C 标准要求保值,而不是标志保值。
预定义的宏
无。
示例
要编译
myprogram.c
以便将所有小于 int
的 unsigned
类型转换为 unsigned int
,请输入:xlc myprogram.c -qupconv
以下简短列表演示了 -qupconv的影响:
#include <stdio.h>
int main(void) {
unsigned char zero = 0;
if (-1 <zero)
printf(“Value-preserving rules in effect\n”);
else
printf(“Unsignedness-preserving rules in effect\n”);
return 0;
}