我正在尝试向后解析文本文件。我已经完成了解析,现在我试图给我的函数一个限制,这样它就不会读取我的整个 5Mb-2Gb 日志文件。我将此限制作为 size_t 传递,我试图想办法默认限制以读取文件中的所有内容。
由于将 -1 传递给无符号类型将设置最高位,我假设这意味着我获得了 size_t 的最大大小。我想知道,这是不好的形式吗?另外,有没有更好的方法来实现我的目标。
为了获得 asize_t
可以容纳的最大可能值,请使用std::numeric_limits
. 这将是最便携的方法:
#include <limits>
size_t max_value = std::numeric_limits<size_t>::max();
关于用于获取无符号整数类型的最大大小是否“可以”的问题-1
,我将在此处向您推荐此问题/答案。
鉴于该答案,您可以使用遵循更好的 C++ 方法的另一个选项是使用std::numeric_limits<size_t>::max()
.
最后,在 C 语言中,您可以使用描述您正在阅读的数据类型的最大整数值的各种_MAX
定义之一。limits.h
例如,对于size_t
类型,您可以使用SIZE_MAX
等。