关闭

[Keil-C51]在Keil C51中使用sizeof()的一点问题记录

标签: sizeofc
651人阅读 评论(0) 收藏 举报
分类:
   问题描述:利用51核的单片机编程时,有时需要确切知道某个数值的字节数大小(如AD采集时采集到的AD值会存放在n位的数值),除了查找KeilC51的手册进行验证,另一种就是直接用sizeof()查看。
   sizeof():关于sizeof()的介绍网上有很多详细的资料,这是一个操作符,所以使用时不必添加头文件。可以对数值和类型进行操作,返回的值是size_t类型。size_t类型在C51编译器的stddef.h中如是定义:
#ifndef _SIZE_T
 #define _SIZE_T
 typedef unsigned int size_t;
#endif
   一点问题:首先使用sizeof()得到类型的字节长度,然后用printf通过串口将数据打印在我电脑上。
    使用
    printf("\n %d %d%d",sizeof(int),sizeof(short),sizeof(char));//打印结果为 514 256 0
   sizeof()返回的是size_t类型,这个就是unsigned int了,用%d格式化打印本应当是没问题的。
    于是,修改后:
  unsigned intj1,j2,j3;
  j1 = sizeof(int);
  j2 = sizeof(short);
  j3 = sizeof(char);
  printf("\n %d %d %d",j1,j2,j3);//此时打印结果为 22 1
   这里修改后,首先将sizeof(int),sizeof(short),sizeof(char)隐式转换成类型unsignedint了,然后再用%d格式化打印就可以。这个问题不知道是何原因。
0
0

猜你在找
【套餐】Hadoop生态系统零基础入门
【套餐】嵌入式Linux C编程基础
【套餐】2017软考系统集成项目——任铄
【套餐】Android 5.x顶级视频课程——李宁
【套餐】深度学习入门视频课程——唐宇迪
【直播】广义线性模型及其应用——李科
【直播】从0到1 区块链的概念到实践
【直播】计算机视觉原理及实战——屈教授
【直播】机器学习之凸优化——马博士
【直播】机器学习&数据挖掘7周实训--韦玮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:240282次
    • 积分:3750
    • 等级:
    • 排名:第8542名
    • 原创:287篇
    • 转载:16篇
    • 译文:0篇
    • 评论:18条
    最新评论