10.07.2015 Views

MPLAB® C30 C 编译器用户指南

MPLAB® C30 C 编译器用户指南

MPLAB® C30 C 编译器用户指南

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

MPLAB ® <strong>C30</strong> 用 户 指 南表 3-15: 代 码 生 成 约 定 选 项 ( 续 )选 项定 义instrumentation 也 可 用 于 在 其 他 函 数 中 扩 展 内 联 的 函 数 。 profiling调 用 表 明 从 概 念 上 来 讲 在 哪 里 进 入 和 退 出 内 联 函 数 。 这 意 味 着 这 种函 数 必 须 具 有 可 寻 址 形 式 。 如 果 对 一 个 函 数 的 所 有 使 用 都 扩 展 内联 , 这 会 增 加 额 外 增 加 代 码 长 度 。 如 果 要 在 C 代 码 中 使 用 externinline, 必 须 提 供 这 种 函 数 的 可 寻 址 形 式 。可 对 函 数 指 定 属 性 no_instrument_function, 在 这 种 情 况 下不 会 进 行 instrumentation。-fno-ident 忽 略 #ident 伪 指 令 。-fpack-struct 将 所 有 结 构 成 员 无 缝 隙 地 压 缩 在 一 起 。 通 常 不 希 望 使 用 这 个 选 项 ,因 为 它 使 代 码 不 是 最 优 化 的 , 且 结 构 成 员 的 偏 移 量 与 系 统 库 不 相符 。-fpcc-structreturn-fno-short-double-fshort-enums-fverbose-asm-fno-verbose-asm-fvolatile-fvolatile-global-fvolatile-staticdsPIC 器 件 要 求 字 按 偶 数 字 节 边 界 对 齐 , 因 此 当 使 用 packed 属 性时 要 小 心 , 避 免 运 行 时 寻 址 错 误 。像 长 值 一 样 , 将 短 struct 和 union 值 返 回 到 存 储 器 中 , 而 不 是返 回 到 寄 存 器 中 。 这 样 做 效 率 不 高 , 但 其 优 点 是 可 以 使 MPLAB<strong>C30</strong> 编 译 的 文 件 与 其 他 编 译 器 编 译 的 文 件 兼 容 。短 结 构 和 联 合 指 长 度 和 对 齐 都 与 整 型 匹 配 的 结 构 和 联 合 。默 认 情 况 下 , 编 译 器 使 用 与 float 等 价 的 double 型 。 这 个 选 项使 得 double 与 long double 等 价 。 如 果 模 块 通 过 参 数 传 递 直 接或 通 过 共 享 缓 冲 空 间 间 接 共 用 double 数 据 , 跨 模 块 混 合 使 用 这 个选 项 可 能 会 产 生 异 常 结 果 。 无 论 使 用 哪 个 开 关 设 置 , 随 产 品 提 供 的库 都 可 正 常 工 作 。按 照 enum 类 型 声 明 的 可 能 值 范 围 的 需 要 , 为 其 分 配 字 节 。 具 体 来说 , enum 类 型 等 价 于 有 足 够 空 间 的 最 小 整 型 。在 输 出 的 汇 编 代 码 中 加 入 额 外 的 注 释 信 息 以 增 强 可 读 性 。默 认 设 置 为 -fno-verbose-asm, 将 给 出 额 外 的 信 息 , 当 比 较 两个 汇 编 文 件 时 有 用 。将 通 过 指 针 进 行 的 所 有 存 储 器 引 用 视 为 volatile。将 对 外 部 和 全 局 数 据 项 的 所 有 存 储 器 引 用 视 为 volatile。 使 用 这 个开 关 对 于 static 数 据 没 有 影 响 。将 对 static 数 据 的 所 有 存 储 器 引 用 视 为 volatile。DS51284C_CN 第 54 页© 2005 Microchip Technology Inc.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!