天天看点

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

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

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

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

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

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位单片机,则是四个字节。

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

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

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

1为了简化变量定义,

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

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

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

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

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

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

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