代码
/**
* 基本数据类型
*/
#include <stdio.h>
#include <limits.h> /* 定义 32 位时的 long 与 unsigned long 取值范围 */
#define LONG_MIN_32 -2147483648L
#define LONG_MAX_32 2147483647L
#define ULONG_MAX_32 4294967295UL int main(int argc, char *argv[]) {
// short
printf("short 取值范围为 %d ~ %d, 占 %d 个字节\n", SHRT_MIN, SHRT_MAX, sizeof(short)); // short 取值范围为 -32768 ~ 32767, 占 2 个字节
// unsigned short
printf("unsigned short 取值范围为 0 ~ %u, 占 %d 个字节\n", USHRT_MAX, sizeof(unsigned short)); // unsigned short 取值范围为 0 ~ 65535, 占 2 个字节
// int
printf("int 取值范围为 %d ~ %d, 占 %d 个字节\n", INT_MIN, INT_MAX, sizeof(int)); // int 取值范围为 -2147483648 ~ 2147483647, 占 4 个字节
// unsigned int
printf("unsigned int 取值范围为 0 ~ %u, 占 %d 个字节\n", UINT_MAX, sizeof(unsigned int)); // unsigned int 取值范围为 0 ~ 4294967295, 占 4 个字节
printf("__WORDSIZE(字的大小)为 %d 个位\n", __WORDSIZE);
// 根据__WORDSIZE的值决定long/unsigned long取值范围
// 64 位
// long
printf("__WORDSIZE 为 64 位时, long 取值范围为 %ld ~ %ld, 占 %d 个字节\n", LONG_MIN, LONG_MAX, sizeof(long)); // __WORDSIZE 为 64 位时, long 取值范围为 -9223372036854775808 ~ 9223372036854775807, 占 8 个字节
// unsigned long
printf("__WORDSIZE 为 64 位时, unsigned long 取值范围为 0 ~ %lu, 占 %d 个字节\n", ULONG_MAX, sizeof(unsigned long)); // __WORDSIZE 为 64 位时, unsigned long 取值范围为 0 ~ 18446744073709551615, 占 8 个字节
// 32 位
// long
printf("__WORDSIZE 为 32 位时, long 取值范围为 %ld ~ %ld, 占 4 个字节\n", LONG_MIN_32, LONG_MAX_32); // __WORDSIZE 为 32 位时, long 取值范围为 -2147483648 ~ 2147483647, 占 4 个字节
// unsigned long
printf("__WORDSIZE 为 32 位时, unsigned long 取值范围为 0 ~ %lu, 占 4 个字节\n", ULONG_MAX_32); // __WORDSIZE 为 32 位时, unsigned long 取值范围为 0 ~ 4294967295, 占 4 个字节
// long long
printf("long long 取值范围为 %lld ~ %lld, 占 %d 个字节\n", LLONG_MIN, LLONG_MAX, sizeof(long long)); // long long 取值范围为 -9223372036854775808 ~ 9223372036854775807, 占 8 个字节
// unsigned long long
printf("unsigned long long 取值范围为 0 ~ %llu, 占 %d 个字节\n", ULLONG_MAX, sizeof(unsigned long long)); // unsigned long long 取值范围为 0 ~ 18446744073709551615, 占 8 个字节
// char
printf("char 取值范围为 %d ~ %d, 占 %d 个字节\n", SCHAR_MIN, SCHAR_MAX, sizeof(char)); // char 取值范围为 -128 ~ 127, 占 1 个字节
// unsigned char
printf("unsigned char 取值范围为 0 ~ %u, 占 %d 个字节\n", UCHAR_MAX, sizeof(unsigned char)); // unsigned char 取值范围为 0 ~ 255, 占 1 个字节
// float
printf("float 占 %d 个字节\n", sizeof(float)); // float 占 4 个字节
// double
printf("double 占 %d 个字节\n", sizeof(double)); // double 占 8 个字节
// long double
printf("long double 占 %d 个字节\n", sizeof(long double)); // long double 占 16 个字节
}
思维导图

最新文章

  1. ldap部署相关,ldap双机\LAM配置管理\ldap备份还原
  2. php性能剖析的几款软件
  3. Hibernate —— 映射关联关系(附录)
  4. Unreal Engine 4 一些小技巧或提示
  5. access里like的通配符不能用%,要用*
  6. LeetCode 笔记21 生成第k个排列
  7. ios Swift ! and ?
  8. Java 8 Lambda表达式10个示例【存】
  9. 4月5日--课堂笔记--JS内置对象
  10. Windows系统操作指令汇总
  11. 如何修改int的打印内容——史上最难的JAVA面试题
  12. nat的翻译类型(2)--动态nat
  13. 【Unity游戏开发】浅谈Lua和C#中的闭包
  14. Docker最全教程之使用Docker搭建Java开发环境(十七)
  15. 【Java】关于项目启动大请求量高负载时如何确保db等资源不出错的问题
  16. parallel::ForkManager
  17. Java 异常处理的误区和经验总结
  18. Java servlet 实现的简易购物车
  19. JavaWeb学习总结-12 JSTL标签语言
  20. CSS导航条nav简单样式

热门文章

  1. Pjsip Porting to Hisilicon SOC
  2. 18.Vim基础指令(自用)——2019年12月13日
  3. 编写mapreduce的程序的套路
  4. Oracle分组函数之ROLLUP
  5. 单词计数-MapReduceJob
  6. BZOJ 2694: Lcm 莫比乌斯反演 + 积性函数 + 线性筛 + 卡常
  7. Golang操作MySQL的正确姿势
  8. vs 2019 create new project 创建新项目
  9. TestStack.White安装详解
  10. java对象实例化 静态块,对象块,构造函数执行顺序