[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.10 倍語整数

GNU C は、int の二倍の大きさの整数型をサポートしている。 この型は、符号付きの場合は long long int、符号無しの場合は unsigned long long int と書く。 long long int 型の定数を作るには、整数にサフィックス LL を 付ける。unsigned long long int 型の整数の場合には、ULL である。

他の整数型同様、これらの型を算術演算で使用することができる。 これらの型についての、加算、減算、ビット毎のブール演算は、 全ての機種で開かれた形で書かれている。乗算は、機種が全語から倍語への拡幅 乗算命令をサポートしているなら、開かれた形で書かれている。 除算とシフトは、特別なサポートを提供している機種でのみ開かれた形で 書かれている。開かれた形で書かれていない演算は、GNU CC 付属の 特別なライブラリルーチンを使う。

long long 型を関数の引数に使うときは、関数のプロトタイプ宣言なし の場合は、落とし穴に注意すること。 ある関数が引数として int 型を想定している場合、 long long int 型の値を渡すと、呼び出し側と呼び出される側で 想定している引数のバイト数が違うので、混乱が生じる。 関数が long long int を想定し、それに対し、int 型を 渡す場合も同じである。 このような問題を避ける最も良い方法は、プロトタイプ宣言を使うことである。


This document was generated using texi2html 1.78.