单片机c51语言变量,51单片机的汇编程序要定义变量

我们在单片机开发当中,基本上用C语言编程,会常用到各种变量。

其实对于我个人而言,unsigned char ,unsigned int,unsigned long,float,struct结构体,指针变量,这几类变量在我的单片机项目中比较常用,有时候会结合一维数组/二维数组使用。

0016dc1ce53233dc258c74d55e83e732.png

在绝大部分的单片机开发过程中

unsigned char 是一个字节,范围0~255,

unsigned int 是2个字节,范围是0~65535

unsigned long是四个字节,范围是0~(2的32次幂-1)

但在少数的单片机开发环境当中,就不太一样。比如前四五年前,我有使用合泰的单片机。

unsigned char和unsigned int 都是是一个字节,范围0~255,

unsigned long 是2个字节,范围是0~65535

而结构体的位宽,则与变量成员的多少和类型有关系,有包含的所有变量的位宽相加得到结构体的位宽。

同样的,结构体指针,指针地址,则与单片机的存储位宽有关系,如果是32位单片机,则是四个字节。

5dec7159011ea3dba8f7586bbde99893.png

在C语言当中,变量还与等关键词组合使用

常常看到很多工程中,在定义变量的时候,会经常与typedef 与各类变量类型进行组合使用,这样做的目的,主要是

1为了简化变量定义,

2避免移植时平台的差异而编译不过的情况。

与static关键词组合使用时,此处static ,是静态变量,我喜欢在函数当中使用,代表这个变量在这个函数当中运行,变量不丢失。

d0fd70142b2e10118e2a65539a0fcffc.png

与const关键词组合使用时,则代表这是一个常量,是固定的数据,需要赋初值。

各类变量字节的宽度,与芯片的平台有很大的关系, 不同的平台,位宽会存在差异。

在编程时,需要明确变量范围,以便在定义变量的时候,选择合适的变量类型。否则会造成溢出的情况,程序运行达不到程序逻辑正常的效果。

C语言的运用灵活多变,一定要掌握基础知识,熟练使用,才能写出优美高效的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值