3

テキストファイルを逆方向​​に解析しようとしています。解析が完了しました。現在、関数に制限を設定して、5Mb-2Gbログファイル全体が読み取られないようにしています。私はこの制限をsize_tとして渡しており、ファイル内のすべてを読み取るために制限をデフォルトにする方法を考えようとしていました。

符号なし型に-1を渡すと最上位ビットが設定されるため、これはsize_tの最大サイズを取得することを意味すると思います。私は疑問に思っていました、これは悪い形ですか?また、私の目標を達成するためのより良い方法はありますか?

4

2 に答える 2

5

size_taが保持できる最大値を取得するには、を使用しますstd::numeric_limits。これは、それを行うための最もポータブルな方法です。

#include <limits>

size_t max_value = std::numeric_limits<size_t>::max();
于 2012-08-22T21:37:15.147 に答える
3

-1符号なし積分型の最大サイズを取得するために使用することが「大丈夫」であるかどうかに関する質問については、ここでこの質問/回答を参照します。

その答えを考えると、より良いC++方法論に従う利用可能な追加のオプションはを使用することstd::numeric_limits<size_t>::max()です。

最後に、Cでは、読み取っているデータ型の最大積分値を説明するさまざまな_MAX定義の1つを使用できます。limits.hたとえば、size_tタイプではSIZE_MAX、などを使用します。

于 2012-08-22T21:38:23.660 に答える