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.5.4 警 告 与 错 误 控 制 选 项警 告 是 诊 断 消 息 , 它 报 告 非 本 质 错 误 、 但 有 危 险 的 语 法 结 构 , 或 暗 示 可 能 存 在 错 误 。可 以 使 用 以 -W 开 头 的 选 项 请 求 许 多 特 定 的 警 告 , 例 如 , 使 用 -Wimplicit 请 求 关 于隐 式 声 明 的 警 告 。 每 条 这 些 特 定 的 警 告 选 项 也 可 以 用 以 -Wno- 开 头 的 相 反 形 式 来 关 闭警 告 , 如 -Wno-implicit。 本 手 册 只 列 出 了 这 两 种 形 式 中 的 一 种 , 这 两 种 形 式 都 不是 默 认 的 。下 面 的 选 项 控 制 MPLAB <strong>C30</strong> C 编 译 器 产 生 的 警 告 的 数 量 和 种 类 。表 3-5:-WALL 隐 含 的 警 告 / 错 误 选 项选 项定 义-fsyntax-only 检 查 代 码 的 语 法 , 除 此 之 外 不 做 任 何 事 情 。-pedantic发 出 严 格 ANSI C 要 求 的 所 有 警 告 ; 拒 绝 所 有 使 用 禁 止 扩 展名 的 程 序 。-pedantic-errors 类 似 于 -pedantic, 只 是 发 出 错 误 而 不 是 警 告 。-w 禁 止 所 有 警 告 消 息 。-Wall使 能 本 表 中 列 出 的 所 有 -W 选 项 。 这 将 使 能 关 于 某 些 用 户 认 为有 问 题 的 , 及 容 易 避 免 的 ( 或 修 改 来 禁 止 警 告 的 ) 语 法 结 构的 所 有 警 告 , 即 使 是 与 宏 一 起 。-Wchar-subscripts 如 果 数 组 下 标 具 有 char 类 型 则 警 告 。-Wcomment-Wcomments-Wdiv-by-zero当 注 释 开 始 符 号 /* 出 现 在 /* 注 释 中 , 或 反 斜 杠 换 行 出 现 在// 注 释 中 发 出 警 告 。编 译 时 发 现 整 数 除 以 0 则 警 告 。 禁 止 这 个 消 息 可 使 用-Wno-div-by-zero。 浮 点 数 除 以 0 不 会 警 告 , 因 为 它 可 以是 获 得 无 穷 大 和 NaNs 的 一 种 合 法 方 法 。( 这 是 默 认 情 况 。)函 数 在 声 明 前 被 使 用 将 给 出 错 误 。检 查 对 printf 和 scanf 等 函 数 的 调 用 , 确 保 所 提 供 参 数 的类 型 与 指 定 的 格 式 字 符 串 相 符 合 。-Werror-implicitfunction-declaration-Wformat-Wimplicit等 价 于 同 时 指 定 -Wimplicit-int 和-Wimplicit-function-declaration。-Wimplicit-functiondeclaration函 数 在 声 明 前 被 使 用 将 给 出 警 告 。-Wimplicit-int 如 果 声 明 没 有 指 定 类 型 则 警 告 。-Wmain-Wmissing-braces如 果 main 的 类 型 有 问 题 则 警 告 。 main 应 该 是 一 个 具 有 外 部链 接 的 函 数 , 它 返 回 int, 并 带 有 正 确 类 型 的 0、 2 或 3 个 参数 。如 果 一 个 聚 集 或 联 合 的 初 始 化 中 括 号 不 全 则 警 告 。 在 下 面 的例 子 中 , a 的 初 始 化 中 括 号 不 全 , 而 对 b 的 初 始 化 是 正 确 的 。int a[2][2] = { 0, 1, 2, 3 };int b[2][2] = { { 0, 1 }, { 2, 3 } };© 2005 Microchip Technology Inc. DS51284C_CN 第 35 页

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

Saved successfully!

Ooh no, something went wrong!