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.

语 言 扩 展3.6.12 结 构 、 联 合 、 枚 举 和 位 域 扩 展支 持 以 下 结 构 、 联 合 、 枚 举 和 位 域 扩 展 :• 在 C 中 , 文 件 范 围 数 组 的 元 素 类 型 可 以 是 不 完 整 的 struct 或 union 类 型 。在 需 要 使 用 元 素 类 型 大 小 之 前 , 元 素 类 型 必 须 是 完 整 的 , 例 如 , 如 果 为 数组 加 下 标 。 如 果 数 组 不 是 extern, 则 元 素 类 型 在 编 译 结 束 时 必 须 是 完 整的 。• 可 以 忽 略 struct 或 union 说 明 符 的 右 花 括 号 } 前 面 的 最 后 一 个 分 号 。 将 发出 警 告 。• 不 需 要 使 用 花 括 号 将 用 于 初 始 化 整 个 静 态 数 组 struct 或 union 的 初 始 值 设定 项 单 值 表 达 式 括 起 来 。 ISO C 要 求 使 用 花 括 号 。• 支 持 一 种 扩 展 以 实 现 类 似 于 C++ 匿 名 联 合 的 结 构 , 其 中 包 括 以 下 内 容 :— 不 仅 允 许 使 用 匿 名 联 合 , 而 且 还 允 许 使 用 匿 名 结 构 。 匿 名 结 构 的 成员 将 升 级 为 包 含 struct 的 范 围 , 并 且 像 普 通 成 员 一 样 对 其 进 行 查 找 。— 可 通 过 typedef 名 称 将 其 引 入 到 包 含 struct 中 。 即 , 不 需 要 像 真 正 匿名 联 合 那 样 直 接 对 其 进 行 声 明 。— 可 以 声 明 标 签 , 但 只 能 在 C 模 式 下 进 行 声 明 。要 能 够 支 持 匿 名 结 构 和 联 合 , 必 须 使 用 anon_unions 编 译 指 示 。• 允 许 在 enum 列 表 末 尾 附 加 一 个 逗 号 , 但 会 发 出 备 注 消 息 。• enum 标 签 可 以 是 不 完 整 的 。 通 过 指 定 用 花 括 号 括 起 来 的 列 表 , 可 以 定 义 标签 名 称 并 在 以 后 对 其 进 行 解 析 。• 可 以 由 计 算 结 果 为 无 符 号 量 的 表 达 式 给 出 枚 举 常 数 值 , 无 符 号 量 适 用 于unsigned int 范 围 , 而 不 适 用 于 int 范 围 。 例 如 :/* When ints are 32 bits: */enum a { w = -2147483648 }; /* No error */enum b { x = 0x80000000 }; /* No error */enum c { y = 0x80000001 }; /* No error */enum d { z = 2147483649 }; /* Error */• 位 域 可 以 具 有 基 础 类 型 , 即 enum 类 型 或 整 型 ( 含 int 和 unsigned int)。另 请 参 阅• 第 4-55 页 的 编 译 指 示• 结 构 、 联 合 、 枚 举 和 位 域 扩 展• 《 编 译 器 用 户 指 南 》 中 第 5-43 页 的 C99 的 新 功 能 。3-22 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!