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-6: 不 被 -WALL 隐 含 的 警 告 / 错 误 选 项 ( 续 )选 项-Wmissing-noreturn 对 可 指 定 noreturn 属 性 的 函 数 产 生 警 告 。 这 些 函 数 仅 是 可 指定 这 一 属 性 的 函 数 , 并 不 是 已 指 定 了 这 一 属 性 的 函 数 。 手 工 检 验这 些 函 数 时 要 小 心 。 实 际 上 , 在 添 加 noreturn 属 性 之 前 也 不要 返 回 ; 否 则 可 能 会 引 入 微 小 的 代 码 生 成 bug。-Wmissing-prototypes 如 果 全 局 函 数 在 定 义 之 前 没 有 先 声 明 原 型 会 产 生 警 告 。 即 使 定 义本 身 提 供 了 原 型 也 会 发 出 这 个 警 告 。( 这 个 选 项 可 用 于 检 测 不 在头 文 件 中 声 明 的 全 局 函 数 。)-Wnested-externs 如 果 在 函 数 内 部 遇 到 了 extern 声 明 , 发 出 警 告 。-Wno-deprecateddeclarations不 要 对 使 用 通 过 deprecated 属 性 指 定 为 deprecated 的 函 数 、变 量 和 类 型 发 出 警 告 。-Wpadded 如 果 一 个 结 构 中 包 含 了 填 充 , 不 管 是 为 了 对 齐 结 构 的 一 个 元 素 ,还 是 为 了 对 齐 整 个 结 构 , 都 发 出 警 告 。-Wpointer-arith 对 于 与 函 数 类 型 或 void 的 长 度 有 关 的 任 何 类 型 发 出 警 告 。 为 方便 用 void * 指 针 和 指 向 函 数 的 指 针 计 算 , MPLAB <strong>C30</strong> 将 这 些类 型 的 长 度 分 配 为 1。-Wredundant-decls 如 果 在 同 一 个 作 用 域 内 多 次 声 明 了 任 何 符 号 则 发 出 警 告 , 即 使 多个 声 明 都 有 效 且 没 有 改 变 任 何 符 号 。-Wshadow 当 一 个 局 部 变 量 屏 蔽 另 一 个 局 部 变 量 时 发 出 警 告 。-Wsign-compare-Wno-sign-compare当 比 较 有 符 号 值 和 无 符 号 值 时 , 将 有 符 号 值 转 换 为 无 符 号 值 , 比较 产 生 不 正 确 结 果 时 发 出 警 告 。 这 个 警 告 也 可 通 过 -W 来 使 能 ;要 获 得 -W 的 其 他 警 告 , 而 不 获 得 这 个 警 告 , 使 用-W -Wno-sign-compare。-Wstrict-prototypes 如 果 对 一 个 函 数 的 定 义 或 声 明 没 有 指 定 参 数 类 型 则 发 出 警 告 。( 如 果 函 数 定 义 或 声 明 前 有 指 定 函 数 参 数 类 型 的 声 明 , 则 允 许 旧式 函 数 定 义 而 不 发 出 警 告 。)-Wtraditional 如 果 某 些 语 法 结 构 在 传 统 C 和 ANSI C 中 操 作 不 同 , 产 生 警 告 。• 宏 参 数 出 现 在 宏 体 中 的 字 符 串 常 量 中 。 在 传 统 C 中 , 这 些 宏参 数 将 替 代 参 数 , 但 在 ANSI C 中 是 常 量 的 一 部 分 。• 在 一 个 块 中 声 明 为 external 的 函 数 , 在 块 结 束 后 被 使 用 。• switch 语 句 有 long 类 型 的 操 作 数 。• 非 静 态 函 数 声 明 后 跟 一 个 静 态 函 数 声 明 。 某 些 传 统 C 编 译 器不 接 受 这 种 语 法 结 构 。-Wundef 如 果 在 #if 伪 指 令 中 对 一 个 未 定 义 的 标 识 符 求 值 会 产 生 警 告 。-Wunreachable-code定 义如 果 编 译 器 检 测 到 代 码 将 永 远 不 会 被 执 行 到 则 发 出 警 告 。 即 使 在有 些 情 况 下 , 受 影 响 的 代 码 行 的 一 部 分 能 被 执 行 到 , 这 个 选 项 也可 能 产 生 警 告 , 因 此 在 删 除 明 显 执 行 不 到 的 代 码 时 要 小 心 。 例如 , 函 数 被 内 联 时 , 警 告 可 能 表 明 仅 在 函 数 的 一 个 内 联 拷 贝 中 ,该 行 执 行 不 到 。DS51284C_CN 第 40 页© 2005 Microchip Technology Inc.

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

Saved successfully!

Ooh no, something went wrong!