-qupconv

C のみ

説明

整数拡張を行うときに符号なしの指定を保持する。

構文

構文図を読む構文図をスキップする        .-noupconv-.
>>- -q--+-upconv---+-------------------------------------------><
 

#pragma optionsも参照してください。

-qupconv オプションは、intより小さい unsigned 型を int ではなく、unsigned int にプロモートします。

符号の保存は C の古い方言との互換性のために提供されています。ANSI C 標準では符号保存と対立する値の保存が必要です。

デフォルト

デフォルトは -qnoupconv ですが、-qlanglvlclassic または extended に設定されているときは、デフォルトは -qupconv になります。コンパイラーは符号なしの指定を保存しません。

デフォルトのコンパイラー・アクションでは、整数拡張により、 charshort intint ビット・フィールド、またはそれらの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;
}

関連情報