嵌入式C语言编程课件,嵌入式系统C语言编程基础PPT课件

《嵌入式系统C语言编程基础PPT课件》由会员分享,可在线阅读,更多相关《嵌入式系统C语言编程基础PPT课件(81页珍藏版)》请在人人文库网上搜索。

1、嵌入式系统C语言编程基础,杨高波,SNBC,.2,目录,关于本课程 C语言复习 编程规范 开发高效程序的技巧,.3,为什么学习本课程,会C语法与会用C语言写程序是两个概念 C的灵活性以及由此而产生的陷阱非常多 The Most Beautiful Language and Most Dangerous Language in the Programming World! 本课程将嵌入式系统中最基本的(最经常用到的)概念与技巧介绍给大家,.4,小测验?,.5,Quiz 1,所有嵌入式系统的主流程最后都进入一个死循环,怎样用C语言实现一个死循环?,.6,Quiz 2,while().和do.whi。

2、le()有什么区别?,.7,Quiz 3,用变量a给出下列定义: 一个整型数 一个指向整型数的指针 一个有10个整型数的的数组 一个有10个指针的数组,该指针是指向一个整型数的,.8,Quiz 4,关键字static的作用是什么?,.9,Quiz 5,关键字const的作用是什么?,.10,Quiz 6,定义一个标准宏MIN ,这个宏输入两个参数并返回较小的一个。,.11,Quiz 7,嵌入式系统中经常要对变量或寄存器进行位操作。给定一个int型变量a,写两段代码,第一个将a的bit 3置为1,第二个将a的bit 3置为0。以上两个操作中,要保持其它位不变。,.12,Quiz 8,嵌入式系统具。

3、有经常去直接访问物理地址的特点。在某工程中,要求设置一绝对地址为0 x5a00 的整型变量的值为0 xaa55。写代码去完成这一任务。,.13,Quiz 9,下面这段代码的输出是什么? void foo(void) unsigned int a = 6; int b = -20; (a+b 6) ? puts(6) : puts( 2;,左移,右移,.59,C语言复习,1)循环与分支 2)作用域与存储类 3)内存与指针 4)位操作 5)预编译处理,.60,预编译处理,C编译系统在对程序进行编译之前,先进行预处理。C提供的预处理功能主要有以下三种: 宏定义 文件包含 条件编译,.61,预编译处理。

4、,1)宏定义 类对象宏 例:#define STX 0 x02 类函数宏 例:#define SQUARE(x) (x)*(x) 几点说明: a.宏定义不是C语句,不在行末加分号; b.宏名有效范围为从定义处到本源文件结束; c.在宏定义时,可以引用已经定义的宏名; d.宏替换不占运行时间,只占编译时间;,.62,预编译处理,2)文件包含:#include 预处理器发现#include后,就会寻找后跟的这个文件并把这个文件的内容复制到当前位置替换#include指令; 使用#include指令的一些例子:,.63,预编译处理,3)条件编译 条件编译指不对整个程序编译,而是编译满足条件的那部分。。

5、条件编译有以下几种形式: a. #ifdef 标识符 程序段1; #else 程序段2; #endif 它的作用:当标识符在前面已经定义过,则对程序段1进行编译,否则对程序段2进行编译。,.64,预编译处理,b. #ifndef 标识符 程序段1; #else 程序段2; #endif 它的作用和#ifdef相反,当标识符之前没被定义过,则对程序段1进行编译,否则就对程序段2进行编译。,.65,预编译处理,c. #if 表达式 程序段1; #else 程序段2; #endif 它的作用:当表达式的值为真时,对程序段1进行编译,都则就对程序段2进行编译;,.66,预编译处理,举例,下面是某工程中。

6、.h文件中的一段程序,请说明#ifndef/#define/#endif结构的作用。 #ifndef DEF_H #define DEF_H #include #include “graphics.h” . #endif,防止头文件被重复引用,.67,编程规范,.68,编程规范,1)规范的作用 改善代码质量 提高开发速度 增进团队精神 养成良好习惯,.69,编程规范,2)编程规范 养成良好的编程习惯,.70,开发高效程序的技巧,.71,开发高效程序的技巧,1)ARM编程中局部变量的使用 举例,请看一面一段程序: int checksum(int *data) char i; . for(i=0。

7、;i NUM) currentFocus = 0; LcdDisplay(menucurrentFocus.text); break; ,.79,开发高效程序的技巧,5)Bug的修正 别急着改,想想,再想想,想清楚了再动手; 考虑所做的修改是否对系统造成新的影响; 考虑是否对全局数据结构或其他人的代码造成影响; 修改完了,应该有详细的代码注释和文档,并对修改过的代码进行测试。,.80,一些有益的建议,长期坚持好的Coding Style; 避免编写技巧性很高的代码; 长期坚持良好的文档写作习惯; 不要崇拜那些独来独往、不受约束且带点邪气的所谓“真正的编程高手”; 基础最重要,坚持学习,天天向上。,.81,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值