繁体   English   中英

使用size_t的正确形式(将-1作为默认值传递以获得最大大小)

[英]proper form with size_t (passing -1 as a default value to get max size)

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

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

为了获得size_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中,您可以使用limits.h中的各种_MAX定义之一来描述您正在读取的数据类型的最大整数值。 例如,使用size_t类型,您将使用SIZE_MAX等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM