标题: 求助c语言float变量和字符串占内存大小问题 [打印本页]

作者: 一袋天骄    时间: 2018-7-26 08:51
标题: 求助c语言float变量和字符串占内存大小问题
1.没有进行字符串转换,程序大小48B
  1. #include<reg52.h>
  2. #include<stdio.h>
  3. #define uchar unsigned char
  4.         
  5. float fengsu;
  6. long  guang;
  7. uchar str[10];
  8.         void display1()
  9.     {
  10.         guang=60000;
  11.                          // sprintf(str,"%5ld",guang);
  12.                         }
  13.         void display2()
  14.     {
  15.                         fengsu=12.34;
  16.                         //sprintf(str,"%5.2f",fengsu);
  17.                 }
  18. void main()
  19. {
  20.         while(1)
  21.         {        
  22.     display1();
  23.                 display2();
  24.         }
  25. }
复制代码




作者: 一袋天骄    时间: 2018-7-26 08:52
本帖最后由 一袋天骄 于 2018-7-26 11:00 编辑

2.进行字符串转化,程序变大到2594B
  1. #include<reg52.h>
  2. #include<stdio.h>
  3. #define uchar unsigned char
  4.        
  5. float fengsu;
  6. long  guang;
  7. uchar str[10];
  8.         void display1()
  9.     {
  10.         guang=60000;
  11.                           sprintf(str,"%5ld",guang);
  12.                         }
  13.         void display2()
  14.     {
  15.                         fengsu=12.34;
  16.                         sprintf(str,"%5.2f",fengsu);
  17.                 }
  18. void main()
  19. {
  20.         while(1)
  21.         {       
  22.     display1();
  23.                 display2();
  24.         }
  25. }
复制代码






作者: 一袋天骄    时间: 2018-7-26 08:59
本帖最后由 一袋天骄 于 2018-7-26 11:00 编辑

3.浮点型变量不转换为字符串,程序大小2559B
  1. #include<reg52.h>
  2. #include<stdio.h>
  3. #define uchar unsigned char
  4.        
  5. float fengsu;
  6. long  guang;
  7. uchar str[10];
  8.         void display1()
  9.     {
  10.         guang=60000;
  11.                           sprintf(str,"%5ld",guang);
  12.                         }
  13.         void display2()
  14.     {
  15.                         fengsu=12.34;
  16.                         //sprintf(str,"%5.2f",fengsu);
  17.                 }
  18. void main()
  19. {
  20.         while(1)
  21.         {       
  22.     display1();
  23.                 display2();
  24.         }
  25. }
复制代码




作者: 一袋天骄    时间: 2018-7-26 09:01
本帖最后由 一袋天骄 于 2018-7-26 11:01 编辑

4.没有浮点型变量,只有长整数变量转换,程序大小1110B
  1. #include<reg52.h>
  2. #include<stdio.h>
  3. #define uchar unsigned char
  4.        
  5. float fengsu;
  6. long  guang;
  7. uchar str[10];
  8.         void display1()
  9.     {
  10.         guang=60000;
  11.                           sprintf(str,"%5ld",guang);
  12.                         }
  13.         void display2()
  14.     {
  15.                         //fengsu=12.34;
  16.                         //sprintf(str,"%5.2f",fengsu);
  17.                 }
  18. void main()
  19. {
  20.         while(1)
  21.         {       
  22.     display1();
  23.                 display2();
  24.         }
  25. }
复制代码




作者: 一袋天骄    时间: 2018-7-26 09:02
本帖最后由 一袋天骄 于 2018-7-26 11:11 编辑

为什么程序大小变化这么大,浮点型变量进行转换,程序直接大了2k




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1