貌似有些编译器并不完全支持所有数据类型,运行结果可能也有差异,依编译器而异,但是获得方式都是一样的
#include <stdio.h> #include <limits.h> #include <float.h> #include <stdlib.h> int main(void) { printf("char类型的变量存储值从%d到%d\n", CHAR_MIN, CHAR_MAX); printf("unsigned char类型的变量存储值从0到%u\n", UCHAR_MAX); printf("short类型的变量存储值从%d到%d\n", SHRT_MIN, SHRT_MAX); printf("unsigned short类型的变量存储值从0到%u\n", USHRT_MAX); printf("int类型的变量存储值从%d到%d\n", INT_MIN, INT_MAX); printf("unsigned int类型的变量存储值从0到%u\n", UINT_MAX); printf("long类型的变量存储值从%ld到%ld\n", LONG_MIN, LONG_MAX); printf("unsigned long类型的变量存储值从0到%lu\n\n", ULONG_MAX); printf("long long类型的变量存储值从%lld到%lld\n", LLONG_MIN, LLONG_MAX); printf("unsigned long long类型的变量存储值从0到%llu\n", ULLONG_MAX); printf("最小的非零float类型变量的值的是%.3e\n", FLT_MIN); printf("最大的float类型变量的值的是%.3e\n", FLT_MAX); printf("最小的非零double类型变量的值的是%.3e\n", DBL_MIN); printf("最大的double类型变量的值的是%.3e\n\n", DBL_MAX); printf("最小的非零long double类型变量的值的是%.3Le\n", LDBL_MIN); printf("最大的long double类型变量的值的是%.3Le\n", LDBL_MAX); printf("float类型的变量提供%u位精度的小数位数\n", FLT_DIG); printf("double类型的变量提供%u位精度的小数位数\n\n", DBL_DIG); printf("long double类型的变量提供%u位精度的小数位数\n", LDBL_DIG); system("pause"); return 0; }
运行结果为