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.

语 言 扩 展if (i) c = i; else c = j; // expanded in full如 果 测 试 以 某 种 方 式 修 改 了 值 , 这 是 非 常 有 用 的 , 例 如 :i++ ? : j;其 中 , i++ 来 自 宏 。 如 果 以 这 种 方 式 编 写 代 码 , 则 只 计 算 i++ 一 次 。如 果 i 的 原 始 值 不 为 零 , 则 结 果 为 i 的 原 始 值 。 无 论 此 结 果 如 何 ,i 都 会 增 加 一次 。模 式仅 在 GNU 模 式 下 支 持 。 支 持 的 语 言 为 C90、 C99 和 C++。3.7.8 指 定 的 初 始 值 设 定 项与 在 C99 中 一 样 , 支 持 指 定 的 初 始 值 设 定 项 。示 例int a[6] = { [4] = 29, [2] = 15 };int b[6] = { 0,0,15,0,29,0 }; // a[] is equivalent to b[]模 式仅 在 C90 和 C++ 的 GNU 模 式 下 支 持 。另 请 参 阅• 《 编 译 器 用 户 指 南 》 中 第 5-43 页 的 C99 的 新 功 能 。3.7.9 扩 展 的 左 值在 GNU 模 式 下 , 在 查 看 逗 号 表 达 式 和 ?: 结 构 时 对 构 成 左 值 的 内 容 的 定 义 较 为宽 松 。 可 以 使 用 复 合 表 达 式 、 条 件 表 达 式 和 类 型 转 换 , 如 下 所 示 :• 可 以 指 定 复 合 表 达 式 :(a++, b) += x;这 相 当 于 :temp = (a++,b);b = temp + x• 可 以 获 取 复 合 表 达 式 &(a, b) 的 地 址 。 这 相 当 于 (a, &b)。3-26 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!