12.07.2015 Views

RealView 编译工具编译器参考指南 - ARM Information Center

RealView 编译工具编译器参考指南 - ARM Information Center

RealView 编译工具编译器参考指南 - ARM Information Center

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

语 言 扩 展3.3.2 long long<strong>ARM</strong> 编 译 器 通 过 类 型 说 明 符 long long 和 unsigned long long 支 持 64 位 整 型 。 就通 常 的 算 术 转 换 而 言 , 它 们 的 行 为 类 似 于 long 和 unsigned long。__int64 是 longlong 的 同 义 词 。整 型 常 数 可 以 具 有 :• ll 后 缀 , 用 于 将 常 数 类 型 转 换 为 long long ( 如 果 合 适 ), 或 者 转 换 为unsigned long long ( 如 果 不 合 适 )• ull 或 llu 后 缀 , 用 于 将 常 数 的 类 型 转 换 为 unsigned long long。printf() 和 scanf() 的 格 式 说 明 符 可 以 包 含 ll, 以 指 定 随 后 的 转 换 应 用 于 longlong 自 变 量 , 如 在 %lld 或 %llu 中 。同 样 , 如 果 普 通 整 型 常 数 的 值 足 够 大 , 则 该 常 数 的 类 型 为 long long 或 unsignedlong long。 编 译 器 将 生 成 一 条 警 告 消 息 以 指 示 这 一 变 化 。 例 如 , 在 严 格 1990ISO 标 准 C 中 , 2147483648 的 类 型 为 unsigned long。 在 <strong>ARM</strong> C 和 C++ 中 , 其类 型 为 long long。 这 种 情 况 产 生 的 一 个 后 果 可 以 在 表 达 式 值 中 体 现 出 来 , 例如 :2147483648 > – 1在 严 格 C 和 C++ 中 , 该 表 达 式 的 计 算 结 果 为 0; 而 在 <strong>ARM</strong> C 和 C++ 中 , 该 表达 式 的 计 算 结 果 为 1。long long 类 型 适 用 于 通 常 的 算 术 转 换 。另 请 参 阅• 第 4-9 页 的 __int643.3.3 restrictrestrict 关 键 字 是 一 种 C99 功 能 , 用 于 确 保 不 同 的 对 象 指 针 类 型 和 函 数 参 数 数组 不 会 指 向 重 叠 的 内 存 区 域 。 因 此 , 编 译 器 可 以 执 行 优 化 , 而 不 会 由 于 可 能 的混 淆 而 将 优 化 禁 止 。限 制要 在 C90 或 C++ 中 启 用 restrict 关 键 字 , 必 须 指 定 --restrict 选 项 。支 持 将 __restrict 和 __restrict__ 关 键 字 作 为 restrict 的 同 义 词 , 无 论 是 否 指 定了 --restrict, 始 终 可 以 使 用 这 些 关 键 字 。<strong>ARM</strong> DUI 0348BC Copyright © 2007-2009 <strong>ARM</strong> Limited. All rights reserved. 3-7ID090708Non-Confidential, Unrestricted Access

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

Saved successfully!

Ooh no, something went wrong!