例如,如果我们有一个我们可能不知道大小的无符号整数类型size_t
,那么我们可以相对简单地获得它可以容纳的最大值,例如:
size_t maximal = -1;
有符号整数类型是否有类似的技术,例如ssize_t
?如:
ssize_t smaximal = ???;
请注意,例如,可能没有相应的无符号类型time_t
(暂时忽略它甚至可能不是整数)。
[编辑 1] size_t/ssize_t/time_t 的使用仅用于说明目的,我正在寻找没有 XXX_MAX 帮助的通用解决方案。
[编辑 2]这似乎可行,但我不确定这是否“只是运气”:
#include "foo_library_with_no_max_macros_because_they_are_dumb.h"
foo_int_type foo = (((unsigned)-1) >> 1);
foo_int_type
(通过一些我不想复制的可怕的预处理器 goop 来确定实际类型)