首先谈一下变量。顾名思义,所谓变量就是可以改变的量,类似于数学方程中的未知数(X,Y,Z)。从计算机硬件角度上看,变量实际是一个个RAM单元的符号抽像。在C语言中,变量必须先用数据类型定义才能使用。
众所周知,C语言数据类型分为基本数据类型、位、指针、构造数据类型(数组、结构体、联合)。单片机应用程序就是由这些数据类型定义的变量集合而成的。
在一个单片机程序系统中,我们常用一个名为typedef.h的文件来展示需要的数据类型。在具体程序设计时,根据不同的功能需要,我们要定义各种类型的变量。常用的有数据暂存类、标志类等。比如用于显示缓存、模数转换后采集到的数据等。我们会根据不同的用途,不同的取值范围,不同的作用域,定义不同类型的变量。
基本数据类型是我们常用的类型。在一个具体的单片机程序中,我们用基本数据类型来定义一些标志、暂存的、零散的量。比如在一个RTC系统中,我们可以定义(typedef unsigned char u8),u8 hour、u8 minute、u8 second。基本数据类型是一种最简单的,最基础的,也是最常用的数据类型。参与运算的频率也是最高的。常用的基本数据类型有char,int,float,double等。有signed与unsigned之分。
构造数据类型也是最常用的。把具有相同数据类型的元素按序排放存储起来,就构造成了数组。最基本的访问方法为下标法。如:u8 arrzy[3] = {0,1,2};其元素顺序为arrzy[0],arrzy[1],arrzy[2], 共三个元素。
而结构体则更加开放。它允许把不同数据类型的变量集合在一起。如:typedef struct {u8 you,u16 me,s8,they}person;注意,结构体只是定义了一种数据类型。如person则是一种结构体数据类型。我们可以用它来定义person类型的变量,进而才可以访问结构体中的you,me,they.如person dajia。则可以dajia.you;