3

我正在尝试向后解析文本文件。我已经完成了解析,现在我试图给我的函数一个限制,这样它就不会读取我的整个 5Mb-2Gb 日志文件。我将此限制作为 size_t 传递,我试图想办法默认限制以读取文件中的所有内容。

由于将 -1 传递给无符号类型将设置最高位,我假设这意味着我获得了 size_t 的最大大小。我想知道,这是不好的形式吗?另外,有没有更好的方法来实现我的目标。

4

2 回答 2

5

为了获得 asize_t可以容纳的最大可能值,请使用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定义之一。limits.h例如,对于size_t类型,您可以使用SIZE_MAX等。

于 2012-08-22T21:38:23.660 回答