ssize_t size_t que c size-t

que - ¿Qué es un método portátil para encontrar el valor máximo de size_t?



size_t que es (5)

Como alternativa a las operaciones de bits sugeridas en las otras respuestas, puede hacer esto en C ++

#include <limits> size_t maxvalue = std::numeric_limits<size_t>::max()

Me gustaría saber el valor máximo de size_t en el sistema que mi programa está ejecutando. Mi primer instinto fue usar el negativo 1, así:

size_t max_size = (size_t)-1;

Pero supongo que hay una forma mejor, o una constante definida en alguna parte.



The size_t max_size = (size_t)-1; La solución sugerida por OP es definitivamente la mejor hasta ahora, pero descubrí otra forma más complicada de hacer esto. Lo estoy publicando solo por curiosidad académica.

#include <limits.h> size_t max_size = ((((size_t)1 << (CHAR_BIT * sizeof(size_t) - 1)) - 1) << 1) + 1;


Una constante manifiesta (una macro) existe en C99 y se llama SIZE_MAX . Sin embargo, no hay tal constante en C89 / 90.

Sin embargo, lo que tienes en tu publicación original es un método perfectamente portátil para encontrar el valor máximo de size_t . Está garantizado para trabajar con cualquier tipo sin firmar.


#define MAZ_SZ (~(size_t)0)

o SIZE_MAX