• ベストアンサー

変数の型でlong longとunsigned long longと言うのは何ですか?

教えていただきたいのですが、変数の型にlong longやunsigned long long なるものがあると聞いたのですが、どのようなものでしょうか? また、どのように宣言するのでしょうか?通常のlongなどと同じ要領で宣言し てやれば良いのでしょうか? もし、この型がある場合に、制約はあるのでしょうか?Unixでしか使えないとか の制約等ありましたらぜひ教えてください。 お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.3

long longはANSI-Cの新しい改訂版C99で正式に採用されました。 C99以前のANSI-C対応処理系では独自拡張(gccなど)です。 環境の指定が無いので独自拡張は無視してANS-C99について解答します。 long longまたはlong long int=64ビット符号付き整数 unsigned long longまたはunsigned long long int=64ビット符号無し整数 定数の場合はLL(=long long)またはLLU(=unsigned long long)を付加する。 LL,LLU小文字でもよい。 1LL,0LL,100000000000lluなど long long系の整数使うライブラリ関数について ・printf/scanf系書式の追加 %lld(=long long) および%llu(=unsigned long long) ・その他ライブラリ関数 文字列整数化:strtollが用意される。 現状では日本語で読めるC99の包括的な資料は存在しません。 英語版で良ければC99のドラフトが参考URLで読むことができます。

参考URL:
http://anubis.dkuug.dk/JTC1/SC22/WG14/

その他の回答 (2)

  • xinman
  • ベストアンサー率30% (25/83)
回答No.2

long long も unsigned long long も新しく追加された型です。 long long:64bit -9223372036854775808~9223372036854775807 unsigned long long:64bit 0~18446744073709551615 という型で64bitであること以外は他の型とshortやlongなどと同じように演算に使用できます。 ただし、新しい型ですので、従来のコンパイラでは対応していない場合が考えられます。

peacenik
質問者

補足

ありがとうございます。 longやshortと同じ用に使用できると言う事ですが、printfなどを使用して 表示したり、sprintfなどを使用する場合はどのようにしたら良いでしょうか? 書式制御文字が分かりません。 あと、atol()やltoa()などの関数を使用する場合などでは、ライブラリなど 新しいものが要るのでしょうか?

  • x-game
  • ベストアンサー率42% (80/189)
回答No.1

こんにちは. 下記のサイトを参考にすると,よくわかると思います. unsignedとは正の整数ということです.

参考URL:
http://www.geocities.co.jp/SiliconValley/1002/c99d/c99d05.htm
peacenik
質問者

お礼

ありがとうございます。 早速確認します。 いろいろと勉強してきます。

関連するQ&A