下载此文档

第2讲自己动手学习单片机系列讲座-C语言回顾.ppt


文档分类:IT计算机 | 页数:约31页 举报非法文档有奖
1/31
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/31 下载此文档
文档列表 文档介绍
第2讲 C语言回顾(ATmega)
青岛科技大学
王泽华
**********
C的变量
变量的声明
<type> <name>;
type通常是以下类型 char,int和double
char 类型变量
char a = ‘A’; //存储A的ascii码0x41到8bit的内存中。
char a = 0x41;//存储0x41到8bit的内存中。
运行以下程序观察其输出
#include <>
int main(void)
{
char a = 'A';
char b = 0x41;
printf("%c\t%c",a,b);
return(0);
}
输出为 A A
限定符号signed和unsigned的作用
char 等价与signed char
二者都表示有符号数
运行以下程序观察其输出
#include <>
int main(void)
{
char a = 129;
signed char b = 129;
unsigned cha c = 129;
printf("%d\t%d\t%d",a,b,c);
return(0);
}
输出为-127 -127 129
从另一个方面说明C不检查这类错误。
int 类型变量
都占用2字节,默认是signed除非前面带有unsigned限定符。
限定符long
long int占用4字节,默认是signed除非前面带有unsigned限定符。
long long int占用8字节,默认是signed除非前面带有unsigned限定符。
float和double 类型变量
浮点类型,两者表示的浮点数范围有区别,单片机在进行浮点类型计算时,会占用大量内存,所以浮点类型数值计算慎用。以后还会谈到如何在有限精度下处理浮点数。
限定符const
const通常用于变量类型前面,告诉编译器,该变量是一个常数,程序中不允许修改。例如
const double PI=;
如果后面再修改PI=;编译器将给出错误提示。
限定符volatile
valatile告诉编译器该变量是易变的。例如程序员想每隔1s让led亮100ms
char rFlag = 0;//错误的写法------------改为 volatile char rFlag = 0;
ISR(TIMER0_OVF_vect)
{

rFlag = 1;
}
Int main()
{

if(rFlag == 1)
{
ledOn();
_delay_ms(100);
rFlag = 0;
}
}
在宣布了rFlag变量后,rFlag占用内存一个字节,并初始化为0,为加快程序的运行,在用到该变量时,该变量被加载到cpu的寄存器中,因为主程序没有改变rFlag的值,所以优化的时候不会重新去到内存中再读该变量,结果你会发现灯永远也不亮;但是在中断中确实改变了内存中该变量的值(改为1)。若加上volatile告诉编译器,遇到rFlag变量老老实实的到内存中重新读取该变量的值。
数组和指针
一维数组的声明和初始化
<type> <name[]>;
声明的同时可以初始化,例如
int a[] = {2,4,6,8,10};
或者
int a[5] ;
for(i=0;i<5;i++)
a[i] = (i+1)*2;
错误的初始化
int a[5] ;
a[] = {2,4,6,8,10};
一维数组的地址
由于是整形,所以每个值占2byte,一共占用10byte连续存储区,其地址分别是&a[0], &a[1], &a[2], &a[3], &a[4]。若使用数组名字a,则表示数组的首地址,即a等价于&a[0]。
指针(指针指向数组的取值及其地址+1的运算)
可以定义一个指向数组的指针
int *pi;
pi = a;//表示pi是一个指针,该指针指向数组a的首地址。
实验以下程序
#include <>
int main(void)
{
int i;
int a[] = {2,4,6,8,10};
int *pi;
double b[]= {,,,,};
double *pd;
pi = a;
pd = b;
printf("int\t address\t double\t address\n");
for(i = 0; i < 5; i++ )
{
printf("%d\t%10p\t%f\t%10p\n",*pi,pi,*pd,pd);
pi++;
pd++;
}
return(

第2讲自己动手学习单片机系列讲座-C语言回顾 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数31
  • 收藏数0 收藏
  • 顶次数0
  • 上传人联系
  • 文件大小277 KB
  • 时间2017-08-18