12.07.2015 Views

RealView 编译工具编译器参考指南 - ARM Information Center

RealView 编译工具编译器参考指南 - ARM Information Center

RealView 编译工具编译器参考指南 - ARM Information Center

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.

C 和 C++ 实 现 细 节与 自 变 量 相 关 的 查 找启 用 与 自 变 量 相 关 的 查 找 后 , 通 过 与 自 变 量 相 关 的 查 找 显 示 的 函 数 可 能 与 通 过正 常 查 找 显 示 的 函 数 发 生 重 载 。 标 准 要 求 即 使 在 正 常 查 找 发 现 的 名 称 为 块extern 声 明 时 , 也 要 进 行 这 种 重 载 。 编 译 器 可 实 现 这 种 重 载 , 但 在 缺 省 模 式 下 ,在 正 常 查 找 发 现 块 extern 时 禁 止 与 自 变 量 相 关 的 查 找 。这 意 味 着 , 即 使 程 序 不 使 用 命 名 空 间 , 程 序 也 可 能 具 有 不 同 的 行 为 , 具 体 取 决于 是 否 使 用 与 自 变 量 相 关 的 查 找 对 其 进 行 编 译 。 例 如 :struct A { };A operator+(A, double);void f(){A a1;A operator+(A, int);a1 + 1.0;// calls operator+(A, double) with arg-dependent lookup} // enabled but otherwise calls operator+(A, int);5.2.7 C++ 异 常 处 理RVCT 中 完 全 支 持 C++ 异 常 处 理 。 但 是 , 在 缺 省 情 况 下 , 编 译 器 不 支 持 此 功能 。 您 必 须 使 用 --exceptions 选 项 启 用 C++ 异 常 处 理 。 有 关 详 细 信 息 , 请 参 阅第 2-53 页 的 --exceptions, --no_exceptions。注 意Rogue Wave 标 准 C++ 库 是 在 启 用 C++ 异 常 的 情 况 下 提 供 的 。您 可 以 对 异 常 表 生 成 进 行 有 限 的 控 制 。运 行 时 的 函 数 展 开缺 省 情 况 下 , 可 以 在 运 行 时 展 开 使 用 --exceptions 编 译 的 函 数 。 有 关 详 细 信 息 ,请 参 阅 第 2-53 页 的 --exceptions, --no_exceptions。 函 数 展 开 包 括 破 坏C++ 自 动 变 量 并 恢 复 在 堆 栈 帧 中 保 存 的 寄 存 器 值 。 函 数 展 开 是 通 过 发 出 描 述 要执 行 的 操 作 的 异 常 表 实 现 的 。可 以 使 用 编 译 指 示 #pragma exceptions_unwind 和 #pragma no_exceptions_unwind 为 特定 函 数 启 用 或 禁 用 展 开 。 有 关 详 细 信 息 , 请 参 阅 第 4-55 页 的 编 译 指示 。--exceptions_unwind 选 项 设 置 此 编 译 指 示 的 初 始 值 。<strong>ARM</strong> DUI 0348BC Copyright © 2007-2009 <strong>ARM</strong> Limited. All rights reserved. 5-17ID090708Non-Confidential, Unrestricted Access

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

Saved successfully!

Ooh no, something went wrong!