strtoull("-1", NULL, 0)
在我测试的系统(OS/X 与 Apple Libc,Linux 与 Glibc)上评估为18446744073709551615
, (0xFFFFFFFFFFFFFFFF
又名ULLONG_MAX
)。
既然strtoull
应该检查返回类型范围之外的值,为什么它不返回0
所有负值?
编辑:周围的行为-ULLONG_MAX
似乎也不一致:
strtoul("-18446744073709551615", NULL, 0) -> 1, errno=0
strtoul("-18446744073709551616", NULL, 0) -> 18446744073709551615, errno=34