ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris Studio 12.3: C ユーザーガイド Oracle Solaris Studio 12.3 Information Library (日本語) |
2.11.3 does_not_read_global_data
2.11.5 does_not_write_global_data
2.11.26 warn_missing_parameter_info
2.14.5 __FUNCTION__ と __PRETTY_FUNCTION__
2.16.1 -I- オプションによる検索アルゴリズムの変更
2.18 Intel MMX および拡張 x86 プラットフォーム組み込み関数のためのコンパイラサポート
-xc99=none を指定してコンパイルするとき、Oracle Solaris Studio C コンパイラには データ型 long long および unsigned long long が含まれ、これらはデータ型 long と類似しています。-m32 を使用してコンパイルすると、long long データ型には 64 ビットの情報が格納され、long には 32 ビットの情報が格納されます。-m64 を使用してコンパイルすると、long データ型には 64 ビットが格納されます。long long データ型は -Xc モードでは使用できません (警告が発行されます)。
long long データ型を出力または入力するには、変換指定子の前に ll の接頭辞を付けてください。たとえば、long long データ型を持つ変数 llvar を符号付き 10 進形式で出力するには、次のように指定します。
printf("%lld\n", llvar);
2 項演算子によっては、両方のオペランドの型を共通の型にするために変換することがあります。この時、結果の型も共通の型となります。これらの演算子は通常の算術変換になります:
どちらか一方のオペランドが long double 型である場合、もう一方のオペランド は long double に変換されます。
一方のオペランドが double 型を持つ場合、もう一方のオペランドは double に変換されます。
一方のオペランドが float 型を持つ場合、もう一方のオペランドは float に変換されます。
これ以外の場合は、汎整数拡張が両方のオペランドで実行されます。次の規則が適用されます。
一方のオペランドが unsigned long long int 型を持つ場合、もう一方の演算子は unsigned long long int に変換されます。
一方のオペランドが long long int 型を持つ場合、もう一方の演算子は long long int に変換されます。
一方のオペランドが unsigned long int 型を持つ場合、もう一方の演算子は unsigned long int に変換されます。
そうでない場合、64 ビット SPARC (-m64) でコンパイルするときのみ、cc -xc99=none を指定するときは、一方のオペランドが long int 型を持ち、もう一方が unsigned int 型を持つ場合、両オペランドは unsigned long int に変換されます。
一方のオペランドが long int 型を持つ場合、もう一方のオペランドは long int に変換されます。
一方のオペランドが unsigned int 型を持つ場合、もう一方のオペランドは unsigned int に変換されます。