整数拡張を行うときに unsigned の指定を保持する。
#pragma optionsも参照してください。
-qupconv オプションは、int よりも小さい任意の unsigned 型を、 int ではなく unsigned int に拡張します。
符号なしの保持は、古い形式の C と互換性を持たせるために提供されています。 ANSI C 規格では、符号なしの保持とは対照的に値を保持するように要請しています。
デフォルトは -qnoupconv ですが、-qlanglvl=extc89 のときのデフォルトは、 -qupconv です。コンパイラーは unsigned の指定を保存しません。
デフォルトのコンパイラーの処置では、整数拡張によって、char、short int、int ビット・フィールド、もしくはこれらの signed 型、unsigned 型、または enumeration 型が int に変換されます。それ以外の場合、型は unsigned int に変換されます。
int より小さいすべての unsigned 型を unsigned int に変換するように myprogram.c をコンパイルするには、以下のように入力します。
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; }