32bit 64bit 型の範囲
32bit ARMv7
# uname -i armv7l # ./test start test ---------- start test-strtol CHAR_MIN =0 CHAR_MAX =255 UCHAR_MAX =255 SHRT_MIN =-32768 SHRT_MAX =32767 USHRT_MAX =65535 INT_MIN =-2147483648 INT_MAX =2147483647 UINT_MAX =4294967295 LONG_MIN =-2147483648 LONG_MAX =2147483647 ULONG_MAX =4294967295 LLONG_MIN =-9223372036854775808 LLONG_MAX =9223372036854775807 ULLONG_MAX =18446744073709551615 strtol error: Success INT_MAX =2147483647 strtol error: Numerical result out of range UINT_MAX =2147483647 strtol error: Numerical result out of range LONG_MAX =2147483647 strtoul error: Numerical result out of range ULONG_MAX =4294967295
Ubuntu16.04 64bit
$ uname -i x86_64 $ $ ./test start test ---------- start test-strtol CHAR_MIN =-128 CHAR_MAX =127 UCHAR_MAX =255 SHRT_MIN =-32768 SHRT_MAX =32767 USHRT_MAX =65535 INT_MIN =-2147483648 INT_MAX =2147483647 UINT_MAX =4294967295 LONG_MIN =-9223372036854775808 LONG_MAX =9223372036854775807 ULONG_MAX =18446744073709551615 LLONG_MIN =-9223372036854775808 LLONG_MAX =9223372036854775807 ULLONG_MAX =18446744073709551615 strtol error: Success INT_MAX =2147483647 strtol error: Success UINT_MAX =4294967295 strtol error: Success LONG_MAX =9223372036854775807 strtoul error: Success ULONG_MAX =18446744073709551615