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.4 标 准 C 语 言 扩 展编 译 器 支 持 多 种 ISO C99 标 准 扩 展 , 例 如 , 覆 盖 旧 式 非 原 型 定 义 的 函 数 原 型 。如 果 以 下 条 件 成 立 , 则 可 以 使 用 这 些 扩 展 :• 源 语 言 是 C99, 并 且 在 非 strict 模 式 下 进 行 编 译• 源 语 言 是 C90, 并 且 在 非 strict 模 式 下 进 行 编 译 。如 果 以 下 条 件 成 立 , 则 无 法 使 用 其 中 的 任 何 扩 展 :• 源 语 言 是 C90, 并 且 使 用 --strict 编 译 器 选 项 将 编 译 器 限 制 为 编 译 严 格C90。• 源 语 言 是 C99, 并 且 使 用 --strict 编 译 器 选 项 将 编 译 器 限 制 为 编 译 严 格 标准 C。• 源 语 言 是 C++。3.4.1 常 数 表 达 式初 始 值 设 定 项 中 支 持 扩 展 的 常 数 表 达 式 。 以 下 示 例 说 明 了 缺省 、--strict_warnings 和 --strict 编 译 器 模 式 下 的 编 译 器 行 为 。示 例 1, 分 配 变 量 地 址代 码 可 能 包 含 在 文 件 范 围 内 分 配 变 量 地 址 的 常 数 表 达 式 , 例 如 :int i;int j = (int)&i; /* but not allowed by ISO */为 C 语 言 进 行 编 译 时 , 这 会 出 现 以 下 行 为 :• 在 缺 省 模 式 下 , 生 成 警 告 。• 在 --strict_warnings 模 式 下 , 生 成 警 告 。• 在 --strict 模 式 下 , 生 成 错 误 。示 例 2, 常 数 初 始 值 设 定 项以 下 示 例 简 要 说 明 C 代 码 中 具 有 包 含 常 数 值 的 表 达 式 时 的 编 译 器 行 为 :/* Std RVCT v3.1 */extern int const c = 10; /* ok ok */extern int const x = c + 10; /* error ext */static int y = c + 10; /* error ext */static int const z = c + 10; /* error ext */<strong>ARM</strong> DUI 0348BC Copyright © 2007-2009 <strong>ARM</strong> Limited. All rights reserved. 3-9ID090708Non-Confidential, Unrestricted Access

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

Saved successfully!

Ooh no, something went wrong!