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++ 实 现 细 节• unsigned int, C 使 用 --strict 时 除 外• signed long long, C 使 用 --strict 时 除 外• unsigned long long, C 使 用 --strict 时 除 外通 过 按 这 种 方 式 实 现 enum, 可 以 减 小 数 据 大 小 。 命 令 行 选 项 --enum_is_int 强 制将 enum 的 基 础 类 型 设 置 为 至 少 与 int 一 样 宽 。有 关 详 细 信 息 , 请 参 阅 《<strong>ARM</strong> 体 系 结 构 的 过 程 调 用 标 准 》 规 范 中 的 C 语 言 映射 说 明 。注 意如 果 要 混 合 已 使 用 和 未 使 用 --enum_is_int 选 项 编 译 的 转 换 单 元 , 并 且 它 们 使 用相 同 的 接 口 或 数 据 结 构 , 则 必 须 格 外 小 心 。处 理 超 出 范 围 的 值在 严 格 C 中 , 必 须 能 够 将 枚 举 器 值 表 示 为 int, 例 如 , 它 们 必 须 在 -2147483648到 +2147483647 范 围 内 ( 含 这 两 个 值 )。 在 早 期 版 本 的 RVCT 中 , 超 出 范 围 的值 将 转 换 为 int, 而 不 会 发 出 警 告 ( 除 非 指 定 了 --strict 选 项 )。在 RVCT 2.2 版 和 更 高 版 本 中 , 枚 举 器 值 超 出 范 围 时 , 将 会 发 出 警 告 :#66: enumeration value is out of "int" range这 些 值 的 处 理 方 式 与 C++ 相 同 , 即 , 将 它 们 作 为 unsigned int、 long long 或unsigned long long 进 行 处 理 。要 确 保 报 告 超 出 范 围 的 警 告 , 请 使 用 以 下 命 令 将 它 们 更 改 为 错 误 :armcc --diag_error=66 ...结 构以 下 内 容 适 用 于 :• 所 有 C 结 构• 所 有 不 使 用 虚 拟 函 数 或 基 类 的 C++ 结 构 和 类 。结 构 对 齐非 压 缩 结 构 的 对 齐 边 界 是 其 任 何 字 段 所 需 的 最 大 对 齐 边 界 。5-8 Copyright © 2007-2009 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DUI 0348BCNon-Confidential, Unrestricted AccessID090708

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

Saved successfully!

Ooh no, something went wrong!