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.

编 译 器 特 有 的 功 能4.1.18 __value_in_regs__value_in_regs 限 定 符 指 示 编 译 器 在 整 数 寄 存 器 中 最 多 返 回 四 个 整 型 字 的 结构 , 或 者 在 浮 点 寄 存 器 中 最 多 返 回 四 个 浮 点 或 双 精 度 值 , 而 不 是 使 用 内 存 。__value_in_regs 是 一 个 函 数 限 定 符 。 它 影 响 函 数 的 类 型 。语 法__value_in_regs return-type function-name([argument-list]);其 中 :return-type 是 大 小 最 多 为 四 个 字 的 结 构 类 型 。用 法调 用 返 回 多 个 结 果 的 函 数 时 , 使 用 __value_in_regs 声 明 函 数 是 非 常 有 用 的 。限 制如 果 __value_in_regs 结 构 需 要 复 制 构 造 , C++ 函 数 将 无 法 返 回 该 结 构 。如 果 要 覆 盖 声 明 为 __value_in_regs 的 虚 拟 函 数 , 还 必 须 将 覆 盖 函 数 声 明 为__value_in_regs。 如 果 这 些 函 数 不 匹 配 , 编 译 器 将 生 成 错 误 。错 误如 果 由 __value_in_regs 限 定 的 函 数 中 返 回 的 结 构 太 大 , 则 会 生 成 警 告 并 忽 略__value_in_regs 结 构 。示 例typedef struct int64_struct{unsigned int lo;unsigned int hi;} int64_struct;__value_in_regs externint64_struct mul64(unsigned a, unsigned b);另 请 参 阅• 《 编 译 器 用 户 指 南 》 中 第 5-12 页 的 __value_in_regs。4-20 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!