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

原创 2015年07月11日 00:17:23
   问题描述:利用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格式化打印就可以。这个问题不知道是何原因。
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

KEIL C51环境下,汇编与C语言交叉编译的问题

1. 关于如何在C语言中嵌入汇编命令: 转载自:http://www.keil.com/support/docs/2308.htm C51: GETTING INLINE ASSEMBLY T...

keil C51环境下,液晶某些汉字不显示问题

问题描述:使用keil C51编译环境,带字库液晶.发现有些汉字使用这样语句无法显示: uchar code coun_show1[]={"请输入第一操作数"};其中的汉字"数"将不会显示,而如果用简...
  • zwxue
  • zwxue
  • 2015-02-10 14:25
  • 902

Keil C51之Strings的使用

Strings在Keil中默认安排存放到code memory;使用STRING(x)可以修改默认存储位置.

keil c51 Compiler变量类型的问题,以及c的部分优化

 keil c51 Compiler变量类型的问题,以及c的部分优化           最近和一位8051都老前辈接触51单片机(接触arm之后返璞归真??不过,51是个好...

KeilC51使用详解 :第五章 Keil C51库函数参考

第五章Keil C51库函数参考 C51强大功能及其高效率的重要体现之一在于其丰富的可直接调用的库函数,多使用库函数使程序代码简单,结构清晰,易于调试和维护,下面介绍C51的库函数系统。 第一节 ...

keil C51绝对地址访问

在利用keil进行8051单片机编程的时,常常需要进行绝对地址进行访问.特别是对硬件操作,如DA AD 采样 ,LCD 液晶操作,打印操作.等等.C51提供了三种访问绝对地址的方法: 1. 绝对宏: ...

Keil C51程序设计中几种精确延时方法

实际的单片机应用系统开发过程中,由于程序功能的需要,经常编写各种延时程序,延时时间从数微秒到数秒不等,对于许多C51开发者特别是初学者编制非常精确的延时程序有一定难度。本文从实际应用出发,讨论几种实用...

利用keil c51生成hex如何设置ROM

利用keil c51生成hex如何设置ROM? 我使用at89s52(256RAM,8K的ROM),程序编译后显示program Size: data=56.0 xdata=0 code=352...

Keil C51详细设置

一.target名更改        打开Keil后,左侧Project Workspace中的target可改,方法:右击Target——Manage Compnents——双击待修改项即可,若要...

Keil C51 与 ARM 并存方法

很多朋友都在想,怎么让keil C51与ARM能够并存使用。有安装经验的朋友都知道,安好C51后再安ARm,C51不能正常工作;安好ARM后再安C51,ARM不能正常工作. 网上也有相关解决办法...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)