C语言 数据类型范围打印
C语言中的数据类型有不同的范围,这些范围可以通过标准库中的头文件 <limits.h> 或 <float.h> 来查看。
测试代码:
void test_limits(void)
{
/* limits.h */
/* bit */
printf("%s=\t+%d\n", STR(CHAR_BIT), CHAR_BIT);
/* char */
printf("%s=\t%d\n", STR(SCHAR_MIN), SCHAR_MIN);
printf("%s=\t+%u\n", STR(UCHAR_MAX), UCHAR_MAX);
printf("%s=\t%d\n", STR(CHAR_MIN), CHAR_MIN);
printf("%s=\t+%d\n", STR(CHAR_MAX), CHAR_MAX);
/* short */
printf("%s=\t%d\n", STR(SHRT_MIN), SHRT_MIN);
printf("%s=\t+%d\n", STR(SHRT_MAX), SHRT_MAX);
printf("%s=\t+%u\n", STR(USHRT_MAX), USHRT_MAX);
/* int */
printf("%s=\t%d\n", STR(INT_MIN), INT_MIN);
printf("%s=\t+%d\n", STR(INT_MAX), INT_MAX);
printf("%s=\t+%u\n", STR(UINT_MAX), UINT_MAX);
/* long */
printf("%s=\t%ld\n", STR(LONG_MIN), LONG_MIN);
printf("%s=\t+%ld\n", STR(LONG_MAX), LONG_MAX);
printf("%s=\t+%lu\n", STR(ULONG_MAX), ULONG_MAX);
/* long long */
printf("%s=\t%lld\n", STR(LLONG_MIN), LLONG_MIN);
printf("%s=\t+%lld\n", STR(LLONG_MAX), LLONG_MAX);
printf("%s=\t+%llu\n", STR(ULLONG_MAX), ULLONG_MAX);
/* float.h */
/* float double */
printf("%s=\t+%d\n", STR(FLT_DIG), FLT_DIG);
printf("%s=\t+%d\n", STR(DBL_DIG), DBL_DIG);
printf("%s=\t+%d\n", STR(LDBL_DIG), LDBL_DIG);
printf("%s=\t+%f\n", STR(FLT_MAX), FLT_MAX);
printf("%s=\t+%f\n", STR(DBL_MAX), DBL_MAX);
printf("%s=\t+%Lf\n", STR(LDBL_MAX), LDBL_MAX);
printf("%s=\t+%f\n", STR(FLT_MIN), FLT_MIN);
printf("%s=\t+%f\n", STR(DBL_MIN), DBL_MIN);
printf("%s=\t+%f\n", STR(DBL_MIN), DBL_MIN);
}
代码运行结果:
CHAR_BIT= +8
SCHAR_MIN= -128
UCHAR_MAX= +255
CHAR_MIN= -128
CHAR_MAX= +127
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
FLT_DIG= +6
DBL_DIG= +15
LDBL_DIG= +18
FLT_MAX= +340282346638528859811704183484516925440.000000
参考链接:
https://www.runoob.com/cprogramming/c-function-printf.html
https://www.runoob.com/cprogramming/c-data-types.html