欢迎来到天天文库
浏览记录
ID:51555948
大小:1.12 MB
页数:81页
时间:2020-03-23
《嵌入式系统C语言编程基础.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、嵌入式系统C语言编程基础杨高波SNBCPage2目录关于本课程C语言复习编程规范开发高效程序的技巧Page3为什么学习本课程会C语法与会用C语言写程序是两个概念C的灵活性以及由此而产生的陷阱非常多TheMostBeautifulLanguageandMostDangerousLanguageintheProgrammingWorld!本课程将嵌入式系统中最基本的(最经常用到的)概念与技巧介绍给大家Page4小测验?Page5Quiz1所有嵌入式系统的主流程最后都进入一个死循环,怎样用C语言实现一个死循环?Page6Qu
2、iz2while(){….}和do{….}while()有什么区别?Page7Quiz3用变量a给出下列定义:一个整型数一个指向整型数的指针一个有10个整型数的的数组一个有10个指针的数组,该指针是指向一个整型数的Page8Quiz4关键字static的作用是什么?Page9Quiz5关键字const的作用是什么?Page10Quiz6定义一个标准宏MIN,这个宏输入两个参数并返回较小的一个。Page11Quiz7嵌入式系统中经常要对变量或寄存器进行位操作。给定一个int型变量a,写两段代码,第一个将a的bit3置为1
3、,第二个将a的bit3置为0。以上两个操作中,要保持其它位不变。Page12Quiz8嵌入式系统具有经常去直接访问物理地址的特点。在某工程中,要求设置一绝对地址为0x5a00的整型变量的值为0xaa55。写代码去完成这一任务。Page13Quiz9下面这段代码的输出是什么?voidfoo(void){unsignedinta=6;intb=-20;(a+b>6)?puts(">6"):puts("<6");}Page14Quiz10请评论下面一段程序代码:voidtest(){charstring[10]
4、;char*str=“0123456789”;strcpy(string,str);}Page15Quiz11请评论下面一段程序代码:voidGetMemory(char*p){p=(char*)malloc(0x20);}voidTest(void){char*str=NULL;GetMemory(str);strcpy(str,”HelloWorld!”);printf(str);}Page16Quiz12中断是嵌入式系统的重要组成部分。请评论下面一段中断服务子程序代码:__interrupt
5、doublecompute_area(doubleradius){doublearea=PI*radius*radius;printf("Area=%f",area);returnarea;}Page17Answer!Page18Quiz1Answerwhile(1){….}Page19Quiz2Answerwhile(){….}为入口条件循环,即在每次执行循环之前先检查判断条件;do{….}while()为退出条件循环,即在执行循环之后再检查判断条件。Page20Quiz3Answera)inta;b
6、)int*a;c)inta[10];d)int*a[10];Page21Quiz4Answer在C语言中,关键字static有三个明显的作用:1)在函数体内,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。Page22Quiz5Answerconst是con
7、stant的缩写,“恒定不变”的意思。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。const常量与#define常量:前者有数据类型,后者只是字符替换(而且可能产生意料不到的错误),所以编译器可以对前者进行安全性检查。Page23Quiz6Answer#defineMIN(A,B)((A)<=(B)?(A):(B))#define宏的副作用,下面的代码执行后会发生什么事:least=MIN(*p++,b);Page24Quiz7AnswerconstintBIT3=0x01<<3;s
8、taticinta;voidSetBit3(void){a
9、=BIT3;}voidClearBit3(void){a&=~BIT3;}Page25Quiz8Answerint*ptTemp=(int*)0x5a00;*ptTemp=0xaa55;Page26Quiz9Answer输出为“>6”,原因是当表达式中存在有
此文档下载收益归作者所有