- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 C语言复习 主讲人:刘花香 felicia@ecit.cn 用变量a给出下面的定义 预处理语句的书写规则 作用:对源程序编译之前做一些处理,生成扩展C源程序 格式: “#”开头 占单独书写行(换行加\) 语句尾不加分号 5.1 宏定义 不带参数宏定义 一般形式: #define 宏名 [宏体] 功能:用指定标识符(宏名)代替字符序列(宏体) 5.1 宏定义 带参数宏定义 一般形式: #define 宏名(参数表) 宏体 例 用宏定义和函数实现同样的功能 带参的宏与函数区别 5.2 条件编译 功能:对源程序中的一部分内容只有满足某种条件的情况下才进行编译。 形式1: 当标识符已经被定义过(使用#define),则对程序段1进行编译,否则编译程序段2。其中#else部分可以省略。 可以用来提高程序的可移植性 可以用来调试程序 #ifndef 标识符 程序段1 #else 程序段2 #endif #if 表达式 程序段1 #else 程序段2 #endif 5.3 文件包含 功能:一个源文件可将另一个源文件的内容全部包含进来 一般形式: #include “文件名” 或 #include 文件名 5.3 文件包含 被包含文件内容 源文件(*.c) 头文件(*.h) 6.作业2 1、请仔细阅读实验指导书第1章内容,自行安装开发环境 2、参照实验指导书1.3新建一个工程模板 带参宏 函数 处理过程 不分配内存 简单的字符置换 分配内存 先求实参值,再代入形参 处理时间 编译时 程序运行时 参数类型 无类型问题 定义实参,形参类型 程序长度 变长 不变 运行速度 不占运行时间 调用和返回占时间 * 宏释放 作用:用于释放原先定义的宏标识符。 格式:#undef 宏标识符 #undef ULONG #ifdef 标识符 程序段1 #else 程序段2 #endif 形式1(续): #define IBM-PC 0 /*或 #define IBM-PC */ #ifdef IBM-PC #define INT 16 #else #define INT 32 #endif 形式1(续): #define DEBUG #ifdef DEBUG printf(“x=%d, y=%d”,x,y); #endif 调试结束后只需将define行删掉即可 形式2: 当标识符未被定义过,则对程序段1进行编译,否则编译程序段2。(与形式1正相反) Page * 举例,下面是某工程中.h文件中的一段程序,请说明#ifndef/#define/#endif结构的作用。 #ifndef DEF_H#define DEF_H#include math.h#include “graphics.h”….#endif 防止头文件被重复引用 形式2: 形式3: 当表达式为真时,则对程序段1进行编译,否则编译程序段2。 直接从标准目录搜索 “” 先在当前目录搜索,再搜索标准目录 可指定路径 处理过程:预处理时,用被包含文件的内容取代该预处理命令,再把“包含”后的文件作为一个源文件编译 宏定义 数据结构定义 函数说明等 实际上文件名也可以是C源文件,不过这不是良好的编程风格 * * * a) 一个整型数 b) 一个指向整型数的指针 c) 一个指向指针的的指针,它指向的指针是 指向一个整型数 d) 一个有10个整型数的数组 e) 一个有10个指针的数组,该指针是指向一 个整型数的 f) 一个指向有10个整型数数组的指针g) 一个指向函数的指针,该函数有一个整型 参数并返回一个整型数 h) 一个有10个指针的数组,该指针指向一个 函数,该函数有一个整型参数并返回一个 整型数 int a; int *a; int **a; int a[10]; int *a[10]; int (*a)[10]; int (*a)(int); int (*a[10])(int); Page * C语言复习 1)循环与分支2)作用域与存储类3)内存与指针4)位操作5)预编译处理 Page * 循环与分支 1)几种循环语句: for(initialize;test;update) {body;} while(test) {body;} do{body;}while(test); 2)循环辅助手段: break语句用于跳出循环, continue语句用于结束本次循环。 Page * 循
文档评论(0)