29.11.2014 Views

MISRA-C-:2004 - 错误提示:发生了异常

MISRA-C-:2004 - 错误提示:发生了异常

MISRA-C-:2004 - 错误提示:发生了异常

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

3 <strong>MISRA</strong>-C: 范 围<br />

3.1 基 本 的 语 言 问 题<br />

<strong>MISRA</strong> 指 南 [9]( 表 3) 要 求 使 用 “ 标 准 化 结 构 化 语 言 的 受 限 子 集 ”。 对 C 来 说 , 这 意 味<br />

着 只 能 使 用 在 ISO 标 准 中 定 义 的 语 言 , 因 此 排 除 了 以 下 方 面 的 使 用 :<br />

• K&R C( 由 Kernighan 和 Ritchie 编 写 的 “The C Programming language” 的 第 一 版 )<br />

• C++<br />

• C 的 私 有 扩 展<br />

3.2 未 指 出 的 问 题<br />

风 格 和 代 码 度 量 问 题 在 一 定 程 度 上 是 很 个 人 化 的 。 对 任 何 一 群 人 来 说 都 很 难 赞 成 什 么 是<br />

适 当 的 , 而 要 <strong>MISRA</strong> 给 出 确 定 性 的 建 议 也 是 不 合 适 的 。 重 要 的 不 是 使 用 者 采 取 了 哪 种 确 切 的<br />

风 格 或 者 特 定 的 度 量 , 而 是 使 用 者 要 定 义 风 格 指 南 和 合 适 的 度 量 与 限 制 ( 见 节 4.2.2 和 4.2.4)。<br />

<strong>MISRA</strong> 协 会 的 角 色 不 是 建 议 特 定 的 供 应 商 或 工 具 强 制 执 行 所 采 取 的 约 束 。 使 用 本 文 档 的<br />

用 户 在 选 择 工 具 上 是 自 由 的 , 鼓 励 供 应 商 提 供 遵 循 规 则 的 工 具 。 本 文 档 用 户 的 负 担 是 要 声 明<br />

其 工 具 充 分 地 遵 循 了 规 则 。<br />

3.3 可 应 用 性<br />

本 文 档 被 设 计 为 应 用 在 汽 车 嵌 入 式 系 统 的 产 品 代 码 上 。<br />

根 据 ISO 9899[2]( 节 5.1.2) 中 定 义 的 执 行 环 境 , 本 文 档 的 目 标 定 在 “ 自 立 (free-standing)<br />

的 环 境 ”, 尽 管 它 也 描 述 了 库 的 问 题 , 因 为 嵌 入 式 编 译 器 中 经 常 也 会 用 到 一 些 标 准 库 。<br />

如 果 合 适 , 本 文 档 的 大 部 分 要 求 也 可 以 应 用 在 其 他 嵌 入 式 领 域 。 对 主 机 系 统 (hosted<br />

system) 的 应 用 , 本 文 档 的 要 求 不 是 必 需 的 。<br />

在 进 行 编 译 器 和 静 态 工 具 的 比 较 检 测 (benchmark) 时 也 不 需 完 全 应 用 本 文 档 规 则 , 有 时<br />

在 比 较 工 具 时 有 必 要 打 破 这 些 规 则 , 以 测 量 工 具 的 响 应 。<br />

3.4 预 备 知 识<br />

本 文 档 不 是 要 做 为 所 涉 主 题 的 介 绍 和 培 训 。 而 是 认 为 读 者 熟 悉 ISO C 编 程 语 言 标 准 和 相<br />

关 工 具 , 并 读 过 了 主 要 的 引 用 文 档 。 同 样 假 设 读 者 已 经 接 受 了 适 当 的 培 训 并 胜 任 C 程 序 员 工<br />

作 。<br />

3.5 C++ 问 题<br />

C++ 不 同 于 C 语 言 , 本 文 档 的 范 围 不 包 含 它 , 也 不 试 图 讲 解 C++ 对 于 编 写 安 全 相 关 系 统<br />

的 适 合 性 与 否 。 然 而 对 于 C++ 编 译 器 和 代 码 的 使 用 方 面 应 该 给 出 以 下 说 明 。<br />

C++ 不 仅 仅 是 C 的 超 集 ( 即 增 加 多 余 的 C 特 性 )。 在 C 和 C++ 中 有 少 数 特 殊 构 造 具 有 不 同<br />

的 解 释 。 而 且 有 效 的 C 代 码 可 以 包 含 一 些 在 C++ 中 是 保 留 字 的 标 识 符 。 基 于 这 些 原 因 , 由 C<br />

7

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

Saved successfully!

Ooh no, something went wrong!