版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高级C语言-嵌入式系统高级C语言程序设计第一讲导论,东南大学无锡分校,内容,这门课的小测验解释了如何更好地学习C语言,你为什么选择这门课,学习C语法和用C语言编写程序是两个概念,由此产生了许多陷阱:编程世界中最美丽的语言和最危险的语言!本课程向每个人介绍嵌入式系统中常用的C语言编程技巧和概念。没有什么可选择的。我很好奇哪个“高级”法学院老师选择了它。我不知道为什么我想在这门课的四个学分中获得一点。你为什么选择这门课(后面),怎么找我,ic_,课程计划如下:第一讲导论,复习C语言的基本语法,编译,汇编,链接和调试。返回区域;参加测验竞赛7,8下列代码的输出是什么,为什么?void foo(voi
2、d)无符号整数a=6;int b=-20;(a b 6)?看跌期权:看跌期权。做一个测试竞赛。8,9,c语言同意一些令人震惊的结构。以下结构合法吗?如果是这样,它会做什么?int a=5,b=7,c;c=a b;进行测验cont.9,包括“stdlib . h”char * test(char * ptr)无符号char I;char buf8 * 1024char * p *,q;对于(I=0;i=8 * 1024I)bufi=0x 0;p=malloc(1024);如果(p=空)返回空;q=malloc(2048年);如果(q=空)返回空;memcpy(p,ptr,1024);memcpy
3、(q,ptr,2048);memcpy(buf,p,1024);buf=buf 1024memcpy(buf,q,2048);免费(p);免费(q);返回buf,应该是,应该是无符号int I;局部变量太大,容易造成堆栈溢出;应该是i 8 * 1024,应为q=空;应该先释放p,然后再返回;Ptr为空且未选中;应为ptr1024,无法分配数组名称;返回局部变量指针是非常危险的;程序更正,回答!测验1答案,a)整数;/整数b)整数* a;/指向整数的指针。/指向整数a10的指针;/10个整数的数组e)整数* a10/一个10个指针的数组,指向整数f)int(* a)(int);/指向函数A的指针
4、,该函数接受一个整数参数并返回一个整数g)int(* a10)(int);/一个由10个指针组成的数组,指向接受一个整数参数并返回一个整数的函数,问答2答案,在c语言中,关键字static有三个明显的函数:1)在函数体中,一个声明为static的变量在调用这个函数的过程中保持其值不变。2)在模块中(但在函数外部),声明为静态的变量可以被模块中使用的函数访问,但不能被模块外部的其他函数访问。它是一个局部全局变量。3)在模块中,声明为静态的函数只能由该模块中的其他函数调用。也就是说,这个函数被限制在声明它的模块的本地范围内。测验3答案,常量a;int const a;const int * a;i
5、nt * const a;int常量*常量a;前两个函数是相同的。a是一个常数整数。第三个意味着A是一个指向常数整数的指针(也就是说,整数是不可修改的,但是指针可以)。第四个意思是a是一个指向整数的常量指针(也就是说,指针指向的整数可以被修改,但是指针不能被修改)。最后一个意味着A是一个指向常数整数的常数指针(也就是说,指针指向的整数是不可修改的,指针也是不可修改的)。const的优点:关键字CONST的功能是向阅读您代码的人传达非常有用的信息。事实上,将参数声明为常数是为了告诉用户该参数的应用目的。如果你花了很多时间清理别人留下的垃圾,你很快就会学会感谢这些多余的信息。(当然,知道如何使用c
6、onst的程序员很少把垃圾留给别人清理。通过给优化器一些附加信息,使用关键字const可以产生更紧凑的代码。合理使用关键字const可以使编译器自然地保护那些不想被更改的参数,并防止它们被无意的代码修改。简而言之,这可以减少错误的发生。测验3答案,测验4答案,变量定义为易变意味着该变量可能会被意外更改,因此编译器不会采用该变量的值。确切地说,当使用这个变量时,优化器必须每次都仔细地重新读取这个变量的值,而不是使用存储在寄存器中的备份。以下是易失性变量的一些例子:1)并行设备的硬件寄存器(例如状态寄存器)2)在中断服务子例程中访问的非自动变量3)多线程应用程序中多个任务共享的变量,quiz 5答
7、案,定义位3 (0x13)静态int a;void set _ BIt 3(void)a |=BIT 3;无效清除位3(无效)a,测验6答案,int * ptrptr=(int *)0 x67a 9;* ptr=0 xaa55绝对地址为0 x67a9的整数变量的值为0x a66,测验7答案。这个函数有太多错误,人们不知道从哪里开始:1) ISR不能返回值。如果你不明白这一点,那你就不会被录用。2)。ISR不能传递参数。如果你看不到这一点,你被录用的机会和第一次一样。3)在许多处理器/编译器中,浮点通常是不可重入的。有些处理器/编译器需要堆叠额外的寄存器,而有些处理器/编译器就是不允许在ISR中
8、进行浮点运算。此外,中断服务请求应该短而有效,在中断服务请求中进行浮点运算是不明智的。4)与第三点一致,printf()经常存在重入和性能问题。_ _中断双计算_面积(双半径)双面积=*半径*半径;打印(面积=%f,面积);返回区域;测验8答案,这个无符号整数问题的答案是输出为“6”。原因是当表达式中存在有符号类型和无符号类型时,所有操作数都会自动转换为无符号类型。因此,-20变成一个非常大的正整数,所以这个表达式计算的结果大于6。这对经常使用无符号数据类型的嵌入式系统非常重要。小考9回答,这个问题将是这次考试的圆满结局。信不信由你,上面的例子完全符合语法。问题是编译器如何处理它?低水平的编译
9、器实际上会争论这个问题,编译器应该能够尽可能多地处理所有合法的用法。因此,上述代码被处理为:c=a b;因此,保持该代码后,a=6,b=7,c=12。如果你知道答案,或者猜对了答案,那就做好。如果你不知道答案,我也不认为这是个问题。我发现这个问题的最大优点是:这是一个关于代码编写风格、代码可读性和代码可修改性的好话题。如何学好C语言,如何真正理解C语言?掌握嵌入式系统中C语言编程的切入点,了解嵌入式系统的C编程环境,了解C程序的调试,了解基于C语言的软件项目组织,了解嵌入式系统的软件开发环境、工具和流程,编译器、汇编器、自由器、连接器、编辑环境、软件设计、交叉开发集成开发环境、调试器(调试、跟
10、踪)、转换程序、模拟器(ICE)、目标板、烧结程序程序程序数据结构算法数据结构内存中的变量是简单变量、结构、数组、指针。算法内存中的代码指针是函数指针,所以理解C语言的关键是真正理解内存,而复杂程序背后的唯一真理就是内存!内存的属性,内容变量的值(这个变量的值甚至可以是一个存储单元的地址,所以这个变量变成了一个指针变量!程序的代码地址。每个存储单元都有自己唯一的地址,就像每个存储单元都有一个内容值一样(当然,内容的含义可能不同)。如果你懂C语言的调试,它不是软件的核心。问题是:如何找到程序错误的根源?如何在软件中自动找出这个错误?如何纠正这个错误?如何避免这个错误?了解c语言项目的文件组织-myproject,file1.c,file1.h,file2.c,file2.h,file3.c,file3.h,call,call,include,include,file1.o,file2.o,file3.o,include,Myproject.out,Link,File1.o依赖于file1.cfile1.hfile2.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海旅游高等专科学校《中国传统文化》2025-2026学年期末试卷
- 邢台新能源职业学院《社会学概论》2025-2026学年期末试卷
- 沈阳建筑大学《会计电算化》2025-2026学年期末试卷
- 上海政法学院《学前儿童保育学》2025-2026学年期末试卷
- 沈阳医学院《口腔黏膜病学》2025-2026学年期末试卷
- 上海政法学院《中国税制》2025-2026学年期末试卷
- 锡林郭勒职业学院《中级微观经济学》2025-2026学年期末试卷
- 上海健康医学院《精神科护理学》2025-2026学年期末试卷
- 上海闵行职业技术学院《护理学导论与法律法规》2025-2026学年期末试卷
- 上海科学技术职业学院《笔译》2025-2026学年期末试卷
- 头疗课件培训
- 城市公交运营调度的智能化管理模式与优化策略研究报告
- 2025公需课《新质生产力与现代化产业体系》考核试题库及答案
- 《化学发展史》课件
- 第三单元:长方体和正方体的表面积增减变化问题“一般型”专项练习-2023-2024学年五年级数学下册典型例题系列(解析版)人教版
- 安徽省历年中考作文题(2006-2024)
- 造价公司档案管理制度
- 初三化学知识梳理:酸碱盐
- E6(R3):药物临床试验质量管理规范(原则及草案)
- 2025锂离子电池生产企业消防安全管理
- 岗位晋升申请书理由
评论
0/150
提交评论