C高级编程―编译预处理ppt课件.ppt

C高级编程―编译预处理ppt课件.ppt

ID:59421080

大小:376.00 KB

页数:44页

时间:2020-09-19

C高级编程―编译预处理ppt课件.ppt_第1页
C高级编程―编译预处理ppt课件.ppt_第2页
C高级编程―编译预处理ppt课件.ppt_第3页
C高级编程―编译预处理ppt课件.ppt_第4页
C高级编程―编译预处理ppt课件.ppt_第5页
资源描述:

《C高级编程―编译预处理ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、嵌入式C语言高级编程篇课程地位课程目标了解嵌入式C语言编程特点和操作细节结合嵌入式环境深入理解指针、数组和函数提高编程实践和编程程序规范理解熟悉C语言标准库应用和特点课程结构图基础知识C语言深入程序规范熟悉宏定义、嵌入式位操作,初步理解数据结构,同时进一步讲述C编程特点、调试和解错(第1-2章)详细讲述数据结构:链表、树、哈希表和常用的排序算法(第3-7章)了解C语言高级编程规范,提高程序编程健壮行熟悉嵌入式编程特点(第8-9章)编译预处理第一章本章目标本章概述讲述宏定义的标准用法和位操作的基本应用了解预编译的概念

2、,掌握宏定义的方法。了解“文件包含”与预处理的应用。了解条件编译的几种形式。本章目标了解一些C语言特殊的宏定义重点宏定义操作本章结构编译预处理编译预处理和位运算文件包含宏定义条件编译预处理其他关键词1编译预处理与位运算编译预处理宏定义文件包含条件编译其他预处理关键字1.1编译预处理作用:对源程序编译之前做一些处理,生成扩展C源程序种类宏定义#define#ifdef#ifndef文件包含#include条件编译#if--#else--#endif等其他宏定义#line#error#pragma格式:“#”开头占单独

3、书写行语句尾不加分号1.2宏定义#undef无参数宏定义有参数宏定义1.2.1#undef#undef定义指令删除前面定义的宏名字。表达一般形式为:#undefmacro-name例子#defineMICRO1#undefMICRO1.2.2无参数宏定义如if(x==YES)printf(“correct!”);elseif(x==NO)printf(“error!”);展开后:if(x==1)printf(“correct!”);elseif(x==0)printf(“error!”);不带参数宏

4、定义一般形式:#define宏名[宏体]功能:用指定标识符(宏名)代替字符序列(宏体)如#defineYES1#defineNO0#definePI3.1415926#defineOUTprintf(“Hello,World”);宏体可缺省,表示宏名定义过或取消宏体例#defineMAXMAX+10()例#definePI3.14159printf(“2*PI=%f”,PI*2);宏展开:printf(“2*PI=%f”,3.14159*2);例#defineWIDTH80#defineLENGTHWID

5、TH+40var=LENGTH*2;宏展开:var=80+40*2;()()例#defineWIDTH80#defineLENGTHWIDTH+40var=LENGTH*2;宏展开:var=80+40*2;1.2.2不带参数宏定义宏定义的规则宏名一般习惯用大写字母表示,以便与变量名相区别宏定义不是C语句,不必在行末加分号在进行宏定义时,可以引用已定义的宏名,可以层层替换。只作字符替换,不分配内存空间。#defineR3.0#definePI3.1415926#defineL(2*(PI)*(R))#defineS(

6、PI)*(R)*(R))main(){printf(“L=%fS=%f”,L,S);}结果:L=18.849556S=28.2743331.2.2不带参数宏定义宏定义的特点宏名一般习惯用大写字母表示提高程序的通用性宏名的有效范围为定义命令之后到本源文件结束可以用#undef命令终止宏定义的作用域宏定义只作简单的替换,不作正确性检查1.2.3带参数宏定义一般形式:#define宏名(参数表)宏体例#defineS(r)PI*r*r相当于定义了不带参宏S,代表字符串“(r)PI*r*r”宏展开:形参用实参换,其

7、它字符保留宏体及各形参之间应加空格注意宏体的括号例#defineS(a,b)a*b………..area=S(3,2);宏展开:area=3*2;不能加空格例#definePOWER(x)x*xx=4;y=6;z=POWER(x+y);宏展开:z=x+y*x+y;一般写成:#definePOWER(x)((x)*(x))宏展开:z=((x+y)*(x+y));1.2.3带参数宏定义带参数宏定义的特点带参宏定义中,宏名和形参表之间不能有空格出现例如:#defineMAX(a,b)(a>b)?a:b写为:#defineMA

8、X(a,b)(a>b)?a:b将被认为是无参宏定义,宏名MAX代表字符串(a,b)(a>b)?a:b在带参宏定义中,形式参数不分配内存单元,因此不必作类型定义在宏定义中的形参是标识符,而宏调用中的实参可以是表达式在宏定义中,字符串内的形参通常要用括号括起来以避免出错#defineSQ(y)((y)*(y))main(){inta,sq;printf("inp

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。