1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取!

在你所使用的编译环境中,你可能不知道int的数据范围是多少,或者记不清无符号短整型的范围是0–65535还是0–65536?这时候就可以按照如下程序进行输出查看:

#include <stdio.h>
#include <limits.h>

/* 输出当前编译器数据类型范围 */
int main(void)
{
 printf("\nchar的范围为: %d —— %d\n", CHAR_MIN, CHAR_MAX);
 printf("unsigned char的范围为: %u —— %u\n\n", 0, UCHAR_MAX);
 
 printf("short的范围为: %hd —— %hd\n", SHRT_MIN, SHRT_MAX);
 printf("unsigned short的范围为: %hu —— %hu\n\n", 0, USHRT_MAX);
 
 printf("int的范围为: %d —— %d\n", INT_MIN, INT_MAX);
 printf("unsigned int的范围为: %u —— %u\n\n", 0, UINT_MAX);
 
 printf("long的范围为: %ld —— %ld\n", LONG_MIN, LONG_MAX);
 printf("unsigned long的范围为: %lu —— %lu\n\n", 0, ULONG_MAX);
 
 printf("long long的范围为: %lld —— %lld\n", LLONG_MIN, LLONG_MAX);
 printf("unsigned long long的范围为: %llu —— %llu\n\n", 0, ULLONG_MAX);
 
 return 0;
}

程序输出结果为:
在这里插入图片描述

其中,CHAR_MIN、CHAR_MAX等符号常量是从哪来的呢?这些符号常量是头文件limits.h里的宏定义,limits.h内容部分截图如下:

在这里插入图片描述

以上输出的范围中,long long与unsigned long long是C99标准引进的新的数据类型,关于C语言的几个标准可以查看往期笔记:【C语言笔记】什么是ANSI C标准?

以上就是关于查看当前编译环境整数数据类型范围的方法,如有错误,欢迎指出!谢谢

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐