整数拡張を行うときに符号なしの指定を保持する。
.-noupconv-. >>- -q--+-upconv---+-------------------------------------------><
#pragma optionsも参照してください。
-qupconv オプションは、intより小さい unsigned 型を int ではなく、unsigned int にプロモートします。
符号の保存は C の古い方言との互換性のために提供されています。ANSI C 標準では符号保存と対立する値の保存が必要です。
デフォルトは -qnoupconv ですが、-qlanglvl が classic または extended に設定されているときは、デフォルトは -qupconv になります。コンパイラーは符号なしの指定を保存しません。
デフォルトのコンパイラー・アクションでは、整数拡張により、 char、short int、int ビット・フィールド、またはそれらのsigned または unsigned 型、あるいは enum 型が 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; }
関連情報