我正在读一本旧的 C 书,据此
int 范围值从 -32768 到 +32767。
由于我的机器可以容纳比该限制更大的 int,我如何找到特定于我的机器的这些数据类型(short、int、long、double、float)的范围?
有什么方法吗?
From this http://www.cplusplus.com/reference/climits/,看一下脚注:
- 实际值取决于特定系统和库的实现,但应反映目标平台中这些类型的限制。
如果您在系统上运行以下代码,它应该会提供一些见解,因为返回的值可能会或可能不会与上面链接中的值不同。
#include <stdio.h>
#include <float.h>
#include <limits.h>
int main() {
printf("\t\tUsing <limits.h> library definitions...\n");
printf("CHAR\n");
printf("signed char max: %d\n", SCHAR_MAX);
printf("unsigned char max: %u\n", UCHAR_MAX); // Note use of u, formatting output
printf("signed char min: %d\n", SCHAR_MIN);
printf("SHORT\n");
printf("signed short min: %d\n", SHRT_MIN);
printf("signed short max: %d\n", SHRT_MAX);
printf("unsigned short max: %d\n", USHRT_MAX);
printf("INT\n");
printf("signed int max: %d\n", INT_MAX);
printf("unsigned int max: %u\n", UINT_MAX);
printf("signed int min: %d\n", INT_MIN);
printf("LONG\n");
printf("signed long max: %d\n", LONG_MAX);
printf("unsigned long max: %u\n", ULONG_MAX);
printf("signed long min: %d\n", LONG_MIN);
printf("FLOAT\n");
printf("signed float max: %e\n", FLT_MAX);
printf("signed float min: %e\n", FLT_MIN);
printf("DOUBLE\n");
printf("signed double max: %e\n", DBL_MAX);
printf("signed double min: %e\n", DBL_MIN);
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)