嵌入式C编程技术_五_.doc_第1页
嵌入式C编程技术_五_.doc_第2页
嵌入式C编程技术_五_.doc_第3页
嵌入式C编程技术_五_.doc_第4页
嵌入式C编程技术_五_.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

童梦无忧网 试管婴儿论坛 本文由grassboy贡献 pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 学习 园地 编 为 者 按 使 广 大 嵌 入 式 系 统 应 用 技 术 人 员 系 统地 了解 和 掌 握 一 些 先 进 应 用 开 发 技 术 本 刊 , 、 从 创 刊 号 起 开 辟学 习 园地 目 栏 。 上 半 年 集 中介 绍 嵌 入 式 、 编程技术 一 一 六 、 , 内容 包 括 单 片 。 机 语 言 应用 程 序 设 计 中的 变 量 定 义 和 变 量 空 间 语 言编 程 技 巧 函 数 有 效 使 用 及 混 合 编 程 技 术 嵌入 式 三 、 编 程技 术 五 北 京理 工 大 学 马 忠梅 函 数 的有效使 用 、 一 这 部 分 包 括 使 用 宏 函 数 减 少 函 数 的调 用 参 数 传 递 的 方 法 和 函 数 返 回 值 的类 型 。 一, 使 用 宏 函 数减 少 函 数的 调 用 什 么是 宏 一 ” 一 门 使用 “ “ 预 处 理命令定 义 宏 宏名 文本 串 ” 是 用 一 串 字 符 替 换 另 一 串字 符 的命 “ 令 。 一旦定义 了 例如 串 ” , 每次宏名在程序 中 程序 出现 时 都 会 用 指 定 的 串来 代 替 。 旧 一 宏定义后 串 , “ 每 次 在 程 序 中 出现 时 都 用 , , 来 一 , 一 代替 。 宏 也 可 以 有参数 如 宏 名 参数 表 即定 义 了 “ 文本 串 , 一 个宏 函数 串 定义了 , 。 在这种情况下 , 。 一旦用 ” 个 宏 函数 后续 的程 序 中出 汀 , 川 尸 现 的 宏 函 数 都 会 由 指 定 的 串来 代 替 例 如 下 面 的宏 函数定 义 , 、 匕川 、 于 每次 的 “ , ” 出现 在程 序 中 都 要 完 成 对 , , 值 操作 程序 旧 。 宏定 义 和宏 函数程序举例如下 程序 是程序 在宏 和 宏 函 数使用 后 的实际替 , 一 换情 况 “ , , 。 在这个例子里 , 一 个宏定义定义 了 串 “ ” 。 、 为 ” “ 另一 个定 义 了宏 函 数 “ ” ” 当串 “ 出现在 函数 的执行过程 “ 中时 它用 , 来 替换 而 且 当 串 , ” 出现 丰第 商 学习 因地 时 它用宏 函数 的 函 数 内容替换 然后 完成 处 理 过 , , 程 。 函数 和 宏 函数 的 比较 这部 分讨论常规 函数 和宏 函数 的区 别 , 。 下 当编 写 大 的软 件 系 统 时 经 常 使 用 的 只 有 几 步 的处 理 过 程 常 常 作 为 函数 , 。 丁 但 是 尽 管是短 函数 也 , , 。 。 总 须 要 使 用 堆 栈 空 间 至 少 是 保 留返 回 地 址 建 议像 这 种 情 况 使 用 宏 函 数 , 宏 函数 同主程序 分开 用 预处 理 命令定 义 然后 通 过 编译 程序把 它 们 , 嵌 人 到使 用 宏 的 函数 中 的代码 就 越 大 。 。 这 样 宏 出现 得 越 多 生 成 , , 程序 一 下 面 是 改 成 宏 函 数后 省 去 的开 销 参数 传递 处 理 返 回地址 保存 局 部 变量 空 间 。 一 川 二 二 、 返 回值 处 理 , 通 过使用 宏 函数 就可 以 减少上述 和 函数调用 , 一 有 关 的 开 销 从 而 减 少 了相 应 的运 行 时 间 。 下 面 是 使 用 函 数 和 使 用 宏 函 数 的 比较 。 程序 旧 , 一 一, 二 , 一 礴 一 一 , 一 一 一 下 一 一 程序 、 处 理 过程 定 义 成 函数 “ ” 。 “ ” 函数 。 万 调 用 完成 对 一 ” 型数组 。 “ 的 处 理 , , ” 。 程序 “ 八 二 二二 处理过程定 义 成 宏 函 数 , 程 序执行 时 由于 。 宏 函 数 处 理 扩 展 成 行 内代 码 根 本 不 需 要 使 用 尽 管 由于 , 堆栈保存返 回地 址 也 不 需 要 参 数 传 递 宏 函数代码嵌人 到 宏 出现 的程 序 主 体 中 多 次 使 用 心 再珠 摄 。 。 。 。 学习 园地 宏 函 数 会 比使 用 常 规 的 函 数 调 用 产 生 更 多 的 代 码 , , 旧 、 但 减 少 了堆 栈 的 使 用 和 内 部 , 单 元 的使 用 。 。 ( 了 乙 勺 件 艺 八 ,月 门 卜 几 凸 爪 门 日 下 在 这 个 例 子 里 由 于 数 组 元 素 作 为 函 数 的参 数 每 次 使 用 函 数 都 要 进 行 地 址 的计 算 短 。 , 旧 这 就 是 为什 么 月 ,月 人 宏 函数 比调用 函 数 产 生 代 码 更 少并 且 运 行 时 间更 , 一 当在 循 环 中使 用 短 函 数 时 宏 函 数 通 常 比 常 规 , 。 函数调用 更 有效 匕 , 任 , 值得 注 意 的 是 在 函 数 调 用 时 完 成 数 据 类 型 的 检 查 即被 调 用 函 数 的参 数 取 决 于 函 数 初 始 定 义 时 , 的数据类 型 说 明 ” , 。 对 于 宏 函 数 不 再 说 明数据 类 型 。 , , , 因而 支 持 任 何 数 据 类 型 。 “ ” 或 “ 不 会 产生 编译 错误 但 可 能得 到意想 不 到 的 。 , 结果 在使 用 宏 函 数 时 要 格 外 小心 函 数 参数 传 递 的 方 法 一 一 , 一 下 面 用 例 子 来 分 析 参 数 传递 的 方 法 。 在这些 例 卜 关 子 中 变 量 定 义成结 构 , 。 参数传递使用 的方法有 常 规参数传递 参 数 结 构 传递 参 数 结 构 地址 传 递 。 二 二 。 参 数 数 据 的结 构 如 图 所示 一 关 关 二 关 十 勺 伟 一 门 关 门 字串 “ ” 又 任 日 日 日 日 , 关 , 结 构类 型 定 义 图 林 参数 定 义 成 结 构 日 材匕 训 常 规参数传 递 下 面是 常规参数传递 的例子 , , 。 参 数 保 留在 寄存 。 器 中 参数越 多 使用 的寄存器就越 多 “ , 例子调用 行和 , 日日 日 , 压 、 ” 函 数 传递 个参 数 数 据 第 , 匕 十 于 匕 币 日 第 , 行产 生 的代 码 把参数 拷 贝到 寄存 器 , , 和 旧 旧 币 中 卫 。 日 巨 丫 匕 厂旧 闪 一 日 巨 闪 压 日 丁 闪 丁 丁 日 丫八 压 任 一 丁 闪丁 丁八 丁八 任 二 , , 口 丰第 期 学习 因地 , 日丫下 , , 丁 , 参 数 结 构传递 下 面 是参数结 构传递 的例 子 。 , 完成参数结构 传 ” , 递的 , 程序非常简单 。 , 在调用 “ 函数 , 之前 第 , 行 产 生 的 代 码 不 仅 把 参 数 拷 贝 到 寄存 器 。 中 而 且 还 进 行 了数 据 的 拷 贝 一 一 巨 一 一 一 签 了 丁 下 一 二 一 旧 丁 参 数 结 构 地 址 传递 一 , 下面是 参数结 构 地 址传递 的例 子 , 。 用这种方 法 仅 把 结 构 的 地 址 拷 贝 到 寄存 器 中 然 后 再 调 用 函 数 日 ” “ ” 。 第 中 。 行 产生 的代码 只把 参 数 它 比方 法 。 拷贝到 , 和 或方法 所需 要 传 递 的 参 数 的字 节 数 更 少 一 一 月 六 口 呀 乃 一 一 一 一 一 苦 关 卜 一 , 一 沙 乙 , 七 一 口 八 艺 一 铃 赞 釜 勺 口 六 , 日 ” 耳弃 粗 学习 园地 艺 走 曰 乙 门 一 之 峥 艺 魂 勺 匕 “ ” 和 “ ” 型返 回值 “ ” 首先 考 虑 返 回 数 一 关 。 字节 ” 或 “ ” 值的函 下 面是返 回 旧 “ 值 函 数 的例 子 。 一 关 , 一 关 丫 一 ,产 艺 乙 甘 了 八 凸 只 门 , 一 “ 一 一 一 “ 一 一 月 一 产 乙 ( 峥 片 只 日 门 匀 匕 了 一 一 一 关 关 关 一 一 一 冈 , , 门 , 门 于 币 匕 一 , 匕 一 闪 丁 丁 丁 闪 二 二 一 二 林 , 旧 丁 日 日 , 旧 , 这种 方法 实 际 上 是把结 构 的指针传递 给 函数 处理过程 直接针对原始结构 , , 。 如 果 函数 改 变 了结 构 。 成 员 的 值 调 用 之 前 的原 始 结 构 值 就 丢 失 了 而 常 规 的参 数传递 方 法 原 始 结 构 值 不 受 影 响 上 面结构 “ 地址 传 递 的 例 子 为 了 防止 员值 的丢失 在使 用 “ ” 。 , “ ” 结 构 中的 “ 扩成 ” 丁 丁 丫 , “ ” 之前 在 把 “ , 函数 中增 加 局 部 变 量 “ ” , ” 的值暂时赋给 】 变量 尸 下 丁 函 数返 回值的类型 这部分是返 回 “ ” 和 “ ” 类 型值及返 回结 。 丁 丁 构类 型 值 的 函 数 的 例 子 解 释 函 数 返 回 值 的类 型 , 丰第 商 学习 因地 几 月 卫 ,几 在 程 序 的第 回 理字节“ ” 行 , “ ” 函数调 用返 。 之 值的 “ ” 函数 函数返 一 , 回值 是 在 函数 返 回 前 的 第 行 产 生 代 码 中拷 贝 到 , 之 只 乙 , 八 勺 月 的 。 在这 个例子 中 ” , “ ” 的返 回 ” 一 值和 “ 变 量 的运 算结 果 赋 给 了 。 “ 变量 , 。 像 这 种 情 况 也 可 以 定 义 传递 返 回 值 地 址 的 函 数 把 返 回 值 返 回 到那 个地 址 中 下 面 的 例子 把返 回 值的 。 长 整 型 变 量 的地 址 作 为 参 数传递 林 一 一 一 一 , 关 一 “ 一 下 二 压 闪 “ ” 一 一 一 关 一 处 理 的结 果直 接 返 回 ” “ 二 关 一 一 “ ” ” 函数 的 “ 一 局部变量 。 返回 字节 型值 的参 数 也 可 以 使 用 同样 的 处 理 定 义 , 。 个传递 返 回值地 址 的 函 数 然 后 由 函 数 把 返 回 值 存 在这个地址 中 一 但 从 产 生 代 码 的效 率来 看 这 种 方 , 法并不可取 。 待续 本 刊 系中 央 级 刊物 是嵌 人 式 系统 专业期 刊 ” 。 选择 单片机 与嵌 人 式系统应 用 刊名 是 考 虑 到 的 蒸 黝 黝 骡 ” 学术动态 全 国地 方 公 司 学 会 动 态小结 安 民告 示 、 、 、 、 。 编 读 往 来 以 刊 为家 信 、 单片机 是 典 型 的 嵌 人 式 系统 在 我 国推 广应用 已 有悠 久 的历 史 , 息交流 咨询 建议 技术 交 互 前 国 内外 公 认 , 、 。 “ 嵌 人 式 系统 则 是 我 们力 争办 好这 读者 嵌 人 式 系统应 用 的 持 踊跃投 稿 。 、 一 个栏 口 由于 期 刊 尚在 初 创阶段 希望 广 大 , 。 的 为各相关学 科 认 同的 名称 也 表明嵌 人 式计算 机 系统 的 广 泛性 应用 则 强 调 本 冈是 以 嵌 人 式 系统技术 应用 为 目标 年 开 辟 的 总栏 目有 四 大 类 共 一 、 程技术 人 员 嵌 入 式 系统 业 界 人 士 大力支 、 ” 个栏 目 、 、 稿 件录川标 准遵循先进性 实用 性 透 明性 平台性 原 则 先 进 性 反 映 先进技术 与方法 具 有引 导 不 范 作 用 , 、 。 、 、 、 。 综合类 专家论 坛 学 术 观 点 创 新 观 念 热点 评述 技 术 评 论 技术综 述 技 术 天 地 宏 观纵 览 归 纳 分 析 应 用指 点 、 、 、 、 、 、 、 。 实 用 性 可 借 鉴 性 具 有 参考 价 值 解决实 际 问题 , , 。 。 透 明 性 对 于 所 介绍 的 内容 不 保 留技术 关 键 他 人 叮 取 复实 现 平 台性 可 减 少重 复劳 动 可 提供 进 一 步 应 川 的 台阶 , 。 。 专题 论述 热 点 选 题 分 析 研 讨 不 同 领域 深 入 探 讨 二 魂 , 。 、 应 用类 、 、 、 注 愈 事项 。 应 用 天 地 技术总结 成 果 交 流 典 刑 应 用 开 发平 台 、 、 、 稿 件请 尽 量 用 电 子 版 方 式撰 写 采用 电子 邮件 发 送 , 。 。 新 器件 新技 术 器 件 原理 接 日 设 汁 应川 软件 先 进 方 法 参 考设 计 系统 没 计 电 路 分 析 应用 软件

温馨提示

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

最新文档

评论

0/150

提交评论