C/C++ int short float double 优化内存

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C语言 pthread线程

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C++面向对象

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C++设计模式

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C++ STL

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++技术杂谈

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++常用函数


一.int short float double 内存占用大小

printf("int :%lu \n",sizeof(int));
printf("short :%lu \n",sizeof(short));
printf("float :%lu \n",sizeof(float));
printf("double :%lu \n",sizeof(double));

/*
int :4 
short :2 
float :4 
double :8 
*/

二.int 和 short 区别


1.字节数不同

int:int占用32字节,32比特

short:短整型变量不得低于16位,即两个字节


2.范围不同

int:数据范围为-2147483648~2147483647[-2^31~2^31-1]

short:数据范围为范围-32768~+32767


三.内存优化

如果使用了大量的 float 或者 double ,在对内存占用要求低的情况下,可以统一使用 short 类型,这样内存占用可以缩小 1 倍以上;举个例子:


1.使用 float 完成计算

float x = 10.55;

2.使用 short 完成计算

float x = 10.55;
short y = x * 100;
float z = (float)y / (float)100.0;

也就是说使用 short 需要多一个中间转换过程,数据存放在内存中使用 short ,真正使用的时候再将 short 转为 float,这样内存占用就能减少一半以上;

//使用float
typedef struct PointsList
{
    float x;
    float y;
    float z;
    struct PointsList  *next;
    
}PointsList;

//使用 short
typedef struct ShortPointsList
{
    short x;
    short y;
    short z;
    struct ShortPointsList  *next;
    
}ShortPointsList;


printf("PointsList :%lu \n",sizeof(PointsList));
printf("ShortPointsList :%lu \n",sizeof(ShortPointsList));

/*
PointsList :24 
ShortPointsList :16 
*/

重上面代码可以看出一个坐标点结构体能节约8个字节,如果很多点的情况下明显能节约很多内存;


四.猜你喜欢

  1. C语言 数组下标越界和内存溢出区别
  2. C语言 使用指针遍历数组
  3. C语言 指针和数组区别
  4. C语言 指针数组和数组指针区别
  5. C语言 野指针
  6. C语言 函数值传递和址传递
  7. C语言 函数不定长参数
  8. C语言 函数指针
  9. C语言 指针函数
  10. C语言 回调函数 callback
  11. C语言 #pragma once
  12. C语言 #include <> 与 #include “” 区别
  13. C语言 const 修饰函数参数
  14. C语言 const 和 define 区别
  15. C语言 #运算符
  16. C语言 ##运算符
  17. C语言 __VA_ARGS__
  18. C语言 ##__VA_ARGS__
  19. C语言 函数不定长参数 ##__VA_ARGS__经典案例
  20. C语言 va_start / va_end / va_arg 自定义 printf 函数
  21. C语言 main 函数
  22. C语言 main 函数参数 main(int argc, char *argv[])
  23. C语言 局部变量
  24. C语言 全局变量
  25. C语言 全局变量和局部变量区别
  26. C语言 static
  27. C语言 extern
  28. C/C++ int short float double 优化内存

未经允许不得转载:猿说编程 » C/C++ int short float double 优化内存
喜欢(0) 打赏

评论抢沙发

评论前必须登录!

不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!!

开始学习

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏