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