2012-03-20 9 views
1

私はLinuxを使用しており、基本的なデータ型(signed/unsigned char、signed/unsigned long、signed/unsigned long)ダブル、等)。C++のデータ型サイズ/範囲はLinux上に表示されます

私はこのすべてを印刷するコマンドラインプログラムがほしいと思っていますが、そうでなければ、私はそれを構築することができます。たとえば、asciiコマンドは、同様の目的に非常に便利です。

+2

実際のサイズは実装によって異なります。それらに頼らないでください。正確な幅の型が必要な場合は、 'stdint.h'の' [u] intXX_t'を使います。 –

+0

ありがとう、@CatPlusPlus、これは私が知っている問題であり、私が想像しているコマンドラインプログラムが願っているものです。 – Richard

+0

boost :: integerを試してください。これはどこでも同じである固定幅の整数型を定義します。移植性に優れています。 – 01100110

答えて

3

limits.hでvimできます。例えば、私のマシン上でそれが始まりで:

/* Number of bits in a `char'. */ 
# define CHAR_BIT  8 

/* Minimum and maximum values a `signed char' can hold. */ 
# define SCHAR_MIN  (-128) 
# define SCHAR_MAX  127 

それとも、あなたが別のプログラムが必要と感じた場合には、単にのようなものを出力します1構築:CHAR_BITSCHAR_MINなど

+0

cnicutar、以下のポスターの1つは、サイズがコンパイラに依存することを示唆しています - 間違っていますか?または、 'limits.h'はコンパイラ固有です(これは問題ありません)? – Richard

+0

@Richardはい、 'limits.h'はコンパイラ固有です。 – cnicutar

+0

さて、あなたはこれをチェックする唯一のコマンドライン方法を提供しているようですが、プログラムを書くのに手間がかかります。ありがとうございます:-) – Richard

1

sizeof(type)はのサイズを返しますタイプ、ベーシックかどうか。

+0

私はあなたが質問のポイントを逃したと思います。私はこの情報を表示するコマンドラインユーティリティを探しています。 – Richard

0

C++がstdクラスを見ている場合numeric_limits

+0

私はあなたが質問のポイントを逃した可能性があると信じています。私はこの情報を表示するコマンドラインユーティリティを探しています。 – Richard

+0

一般的なコマンドラインユーティリティは、コンパイラ固有のものでなければならないため、存在しそうにありません。 与えられたコンパイラ用にビルドするのはとても簡単です。std :: numeric_limitsを目的の型でインスタンス化するだけです。 – Marius

+0

ああ、整数の大きさなどはマシンに依存すると思っていたでしょうが、あなたが言うことは理にかなっています。可能であれば、この有用な情報を含めるように回答を更新する必要があります。 – Richard

関連する問題