嵌入式C语言教案.doc_第1页
嵌入式C语言教案.doc_第2页
嵌入式C语言教案.doc_第3页
嵌入式C语言教案.doc_第4页
嵌入式C语言教案.doc_第5页
已阅读5页,还剩151页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1一、LinuxC环境说明.61.C语言简介.62.嵌入式C与PC机C.63.Linux下C语言编程的环境概述.6a.编辑器:vi.6b.编译连接器:gcc.6c.调试器:gdb.11d.项目管理器:makefile.14二、编码规范.191.基本原则.192.文件布局.193.基本格式.214.对齐.215.空行空格.226.注释规则.227.其它.22三、第一个程序.25四、数据类型.261.常量与变量.261)常量.262)变量.273)const定义的常量.272.整型变量.281)分类:.282)占内存:.283)类型自动转换.294)const定义的常量.303.实型变量.304.字符变量.305.字符串常量.311)字符串常量的概念和字符串长度.312)字符串的存储.31五、运算符.321)算术运算符:+,-,*,/,%.322)关系运算符:,=,=,=,!=.323)逻辑运算符:&,|.324)自增运算符:+,-.325)位运算:&,|,.336)赋值运算符:=,+=,-=,/=,%=.337)条件运算符:?:.338)逗号运算符:返回最右边表达式的值。.339)sizeof运算符.33六、顺序程序结构设计.371.格式化输出printf()函数.3722.格式化输入scanf()函数.37七、选择结构程序设计.391.关系运算符及其表达式.391)关系运算符.392)逻辑运算符.393)逻辑运算规则.392.if语句.403.条件运算符.414.switch.415.goto语句.42八、循环结构程序设计.461.for语句.462.while语句.473.do-while语句.484.break语句与continue语句.49九、数组.561.定义.562.一维数组的初始化.561)格式:.562)注意:.563)使用:.573.二维数组的初始化.571)初始化格式:.572)引用格式:.573)地址级别:.584)地址类型.594.字符数组.591)定义:.602)一些字符操作的函数.603)字符串:.613)一些字符串的操作函数.61十、函数.691.函数的声明.692.函数的定义.701)无参函数的一般形式:.702)有参函数的一般形式.703.函数的返回值与函数类型.71a.函数返回值与return语句.71b.函数类型.71c.说明.714.函数中形参与定义的变量.725.函数的嵌套调用和递归调用.72a)函数的嵌套调用.72b)函数的递归调用.7236.函数中的变量.73a)变量的作用域.73b)变量的生存期.73c)局部变量.74d)全局变量.74e)自动变量.75f)静态变量.75g)寄存器变量.76h)volatile变量.76i)变量的初始化.76j)栈帧结构与程序内存空间.77十一、编译欲处理.851.宏定义.85a)无参数宏定义.85b)带参数的宏定义.85c)宏定义的优点.862.预编译条件编译.86a)#ifdef#endif和#ifndef#endif命令.86b)#if#endif.863.防止头文件xxx.h被重复包含.874.#与#在宏定义中的使用.87十二、指针.901.指针概念.902.指针的运算.923.数组和指针.934.指针数组与数组指针.93a)指针数组.93b)数组指针.955.野指针.966.指针的步长.977.定义字符串常量.988.内存的动态分配与释放.98a)malloc().98b)free().99c)动态分配内存的特点.999.常量修饰符const.99a)函数体内修饰局部变量.99b)在函数声明时修饰参数.9910.二级指针.10011.函数指针.101a)定义.101b)赋值.101c)调用.101d)与指针函数的区别.1014e)函数指针数组的定义.10112.理解复杂的声明.102十三、结构体.1181.结构体变量的定义.1182.结构体变量的成员引用规则和初始化.1193.结构体数组.1204.共用体.1205.枚举类型.121a)什么事枚举类型.121b)枚举类型的定义.121c)枚举变量的定义.121d)枚举类型是有序的类型.1226.结构体和共用体在实际工作中的巨大作用.122十四、位运算.1421.数值源码表示.1422.数值的反码表示.1423.数值的补码表示.1424.位运算.143a.按位与&.143b.按位或|.143c.按位异或.143d.按位取反.144e按位左移.144g.实现&、|、运算主要用途的方法.1445.位段结构.145a.定义.145b.位段数据的引用:.146十五、文件.1501.文件的分类.1502.文件类型FILE.1503.文件的打开与关闭.150a.打开文件fopen()函数.150b.关闭文件fclose().1524.读/写文件中的一个字符.152a.读一个字符fgetc().152b.写一个字符fputc().152c.EOF.153d.feof().1535.读/写文件中的一个字符串.153a.读一个字符串fgets().153b.写一个字符串fputs().1536.读/写一个数据块.154a.读一个数据块fread().1545b.写一个数据块fwrite().1547.文件定位.155a.位置指针重定位fseek().155b.获得位置指针的位置ftell().155c.文件指针定位到文件流的开始rewind.1558.格式化输出函数.155a.printf()函数.155b.格式化字符串输出到文件fprintf().155c.格式化字符串输出到buffer内sprintf().1556一、LinuxC环境说明1.C语言简介最早是由贝尔实验室的丹尼斯利奇(DennisRitchie)为了UNIX的辅助开发而编写的。他的硬件无关性和可移植性,使C语言逐步成为世界上使用最广泛的计算机语言。1987年,美国国家标准协会(ANSI)制定了C语言的标准,称为ANSIC,目前流行的C语言编译系统都是以它为基础的。特点:是“中级语言”,把高级语言的基本结构和语句与低级语言的实用结合起来,可以像汇编一样对位、字节和地址进行操作,而这三者是计算机的最基本单元结构化语言,层次清晰,便于使用、维护以及调试C语言功能齐全、可移植性强。2.嵌入式C与PC机C(正确性、效率、移植)嵌入式的c语言与pc机的c语言编写程序绝对不能简单等同,pc机资源十分丰富,运算能里强大,因此程序员在写pc机的应用程序时几乎不用关心编译后的可执行在运行过程中需要占用多少系统资源,也基本不用担心运行效率有多高。嵌入式c在程序编写和编译时都要考虑运行的速度和效率。在程序设计时都要考虑。嵌入式有很多时候会受到硬件的限制,同时,在编写嵌入式的程序时,对于实时性要求可能会很高,同时,由于嵌入式系统一般内存,cpu等资源有限,编程时需要特别考虑系统的高效性。为什么不选择汇编?-移植性3.Linux下C语言编程的环境概述a.编辑器:vib.编译连接器:gccgcc是GNU推出的功能强大、性能优越的多平台编译器。编译是指源代码转化生成可执行代码的过程。编译过程十分复杂包括:词法、语法和语义的分析、中间代码的生成和优化、符号表的管理和出错处理等。7GNUCC(简称为gcc)是GNU项目中符合ANSIC标准的编译系统,能编译C、C+、ObjiecC、JAVA、Fortran、Pascal、Ada等多种语言,并且是个交叉平台编译器,适合于嵌入式领域的开发编译。gcc所支持的后缀名解释gcc编译流程:预处理(Pre-Processing)调用cpp命令。对包含的头文件(#include)和宏定义(#define、#ifdef等)进行处理。可以使用gcc的选项-E进行查看,该选项的作用是让gcc在预处理结束后停止编译过程。后缀为“.i”的文件为已经预处理过的C程序。gcc-Ehello.c-ohello,i编译(Compiling)调用cc1命令。首先检查代码的完整性、是否有语法错误等,以确定代码实际要做的工作,在检查无误后,gcc把代码翻译成汇编语言。可用-S选项进行查看,该选项只进行编译不进行汇编。后缀为“.s”的文件为已经编译过的汇编代码。gcc-Shell

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论