购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.3.2 变量

在程序运行过程中,其值可以被改变的量称为变量。变量有两个要素:一是变量名,变量命名遵循标识符命名规则;二是变量值,在程序运行过程中,变量值存储在内存中。

在C语言中,要求对所有用到的变量,必须先定义、后使用,定义一个变量的格式如下:

在定义格式中,除了数据类型和变量名表是必要的,其他都是可选项。

1.变量的初始化

声明了一个整型变量a。但这变量的值的大小是随机的,我们无法确定,无法确定一个变量值是常有的事。但有些时候,出于某种需要,需要事先给一个变量赋初值。为变量赋初值一般用“=”进行赋值,例如:

其作用是将 0 赋予a,让a的值初始化为 0。

定义多个变量时也一样,例如:

需要说明的是,定义一个变量时,如果一个变量的值小于 255,一般将其定义为unsigned char类型,最好不要定义为unsigned int类型。因为unsigned char类型只占 1 个字节,而unsigned int类型则占用 2 个字节。当然,如果这个变量的值大于 255,则不能将其定义为unsigned char类型,只能将其定义为unsigned int类型或其他合适的类型。

2.变量的存储器类型

AVR单片机的存储器主要有程序存储器和数据存储器。

(1)程序存储器(Flash)

程序存储器只能读,不能写,程序存储器除了代码外,往往还用于存放固定的表格、字形码等不需要在程序中修改的数据。

对于IAR AVR编译器,在变量名前加上“_flash”,说明这个变量放置在Flash存储器中,如定义LED数码管的字形码表为。

(2)数据存储器(RAM)

如果在每个变量定义前不加任何关键字进行限定,那么IAR AVR编译器默认将该变量存放在RAM中。例如,设计一个计时装置时需用到时间变量,在定义时将其定位于RAM中,可以定义如下:

在设计AVR单片机的程序时,应当将频繁使用的变量存放在内部数据存储器RAM中,而把不变的常量存放在Flash中。对于有些需要在断电后进行保存的变量。可以在断电前将它们转存到EEPROM中。 OVBgPrmhhChl/uku6QdBCECZ+wMysO/2KS1xmBuJXiWyqLP3c5P8IWN7yPBmXQJt

点击中间区域
呼出菜单
上一章
目录
下一章
×