upconv

C に適用

目的

整数拡張を行うときに unsigned の指定を保持する。

構文


構文図

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

-qupconv オプションは、int よりも小さい任意の unsigned 型を、 int ではなく unsigned int に拡張します。

符号なしの保持は、古い形式の C と互換性を持たせるために提供されています。 ANSI C 規格では、符号なしの保持とは対照的に値を保持するように要請しています。

デフォルト

デフォルトは -qnoupconv ですが、-qlanglvl=extc89 のときのデフォルトは、 -qupconv です。コンパイラーは unsigned の指定を保存しません。

デフォルトのコンパイラーの処置では、整数拡張によって、charshort intint ビット・フィールド、もしくはこれらの 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;
}

関連参照

コンパイラーのコマンド行オプション
langlvl IBM Copyright 2003