10.07.2015 Views

MPLAB® C30 C 编译器用户指南

MPLAB® C30 C 编译器用户指南

MPLAB® C30 C 编译器用户指南

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

使 用 MPLAB <strong>C30</strong> C 编 译 器表 3-6: 不 被 -WALL 隐 含 的 警 告 / 错 误 选 项 ( 续 )选 项-Wwrite-strings定 义字 符 串 常 量 类 型 为 const char[length] 时 , 将 一 个 字 符 串常 量 的 地 址 复 制 到 一 个 非 常 量 char * 指 针 会 产 生 警 告 。 这 些 警告 有 助 于 在 编 译 时 查 找 试 图 写 字 符 串 常 量 的 代 码 , 但 仅 是 在 声 明和 原 型 中 使 用 const 时 非 常 小 心 的 前 提 下 。 否 则 , 这 是 不 安 全的 , 这 也 是 -Wall 为 什 么 不 要 求 这 些 警 告 的 原 因 。3.5.5 调 试 选 项表 3-7:调 试 选 项选 项定 义-g 产 生 调 试 信 息 。MPLAB <strong>C30</strong> 支 持 同 时 使 用 -g 和 -O, 因 此 可 以 调 试 优 化 的 代 码 。调 试 优 化 代 码 的 缺 点 是 有 时 可 能 产 生 异 常 结 果 :- 某 些 声 明 的 变 量 可 能 根 本 不 存 在 ;- 控 制 流 程 可 能 短 暂 异 常 转 移 ;- 某 些 语 句 可 能 由 于 计 算 常 量 结 果 或 已 经 获 得 其 值 而 不 执 行 ;- 某 些 语 句 可 能 由 于 被 移 出 循 环 在 不 同 的 地 方 执 行 。尽 管 如 此 , 证 明 还 是 可 以 调 试 优 化 输 出 的 。 这 使 优 化 可 能 有 bug的 程 序 变 得 合 理 。-Q 使 编 译 器 打 印 它 在 编 译 的 每 个 函 数 名 , 并 在 结 束 时 打 印 关 于 每 遍编 译 的 一 些 统 计 信 息 。-save-temps不 要 删 除 中 间 文 件 。 将 中 间 文 件 放 在 当 前 目 录 中 , 并 根 据 源 文 件命 名 它 们 。 因 此 , 用 “-c -save-temps” 编 译 “foo.c” 将 生成 下 面 的 文 件 :‘foo.i’ ( 预 处 理 文 件 )‘foo.p’ ( 预 过 程 抽 象 汇 编 语 言 文 件 )‘foo.s’ ( 汇 编 语 言 文 件 )‘foo.o’ ( 目 标 文 件 )© 2005 Microchip Technology Inc. DS51284C_CN 第 41 页

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

Saved successfully!

Ooh no, something went wrong!