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++ 实 现 细 节5.2 C++ 实 现 细 节本 节 介 绍 了 C++ 特 定 的 语 言 实 现 细 节 。5.2.1 使 用 ::operator new 函 数根 据 ISO C++ 标 准 , 在 内 存 分 配 失 败 时 , ::operator new(std::size_t) 将 抛 出 异常 , 而 不 是 发 出 信 号 。 如 果 未 捕 获 到 异 常 , 则 会 调 用 std::terminate()。编 译 器 选 项 --force_new_nothrow 将 编 译 中 的 所 有 新 调 用 转 变 为 ::operatornew(std::size_t, std::nothrow_t&) 或 :operator new[](std::size_t,std::nothrow_t&) 调 用 。 但 是 , 这 并 不 影 响 库 中 的 operator new 调 用 , 也 不 影 响 对任 何 类 特 定 的 operator new 的 调 用 。 有 关 详 细 信 息 , 请 参 阅 第 2-57 页 的--force_new_nothrow, --no_force_new_nothrow。旧 对 象 支 持在 RVCT 2.0 版 中 , 当 ::operator new 函 数 出 现 内 存 不 足 时 , 它 将 发 出 信 号SIGOUTOFHEAP, 而 不 是 引 发 C++ 异 常 。 请 参 阅 《 库 和 浮 点 支 持 指 南 》 中第 2-95 页 的 ISO C 库 实 现 定 义 。在 当 前 版 本 中 , 可 以 安 装 new_handler 以 发 出 信 号 , 从 而 恢 复 RVCT 2.0 版 行 为 。注 意不 要 依 赖 此 行 为 的 实 现 细 节 , 因 为 它 在 将 来 版 本 中 可 能 会 发 生 变 化 。5.2.2 试 验 数 组ADS 1.2 和 RVCT 1.2 版 C++ 编 译 器 可 以 使 用 试 验 ( 即 不 完 整 ) 数 组 声 明 , 例 如int a[]。 使 用 RVCT 2.x 或 更 高 版 本 的 编 译 器 编 译 C++ 时 , 不 能 使 用 试 验 数 组 。5.2.3 C++ 函 数 中 的 旧 式 C 参 数ADS 1.2 和 RVCT 1.2 版 C++ 编 译 器 允 许 在 C++ 函 数 中 使 用 旧 式 C 参 数 。 即 ,void f(x) int x; { }在 RVCT 2.x 或 更 高 版 本 的 编 译 器 中 , 如 果 代 码 在 函 数 中 包 含 任 何 旧 式 参 数 , 则必 须 使 用 --anachronisms 编 译 器 选 项 。 如 果 编 译 器 发 现 任 何 实 例 , 则 会 发 出 警 告 。<strong>ARM</strong> DUI 0348BC Copyright © 2007-2009 <strong>ARM</strong> Limited. All rights reserved. 5-13ID090708Non-Confidential, Unrestricted Access

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

Saved successfully!

Ooh no, something went wrong!