12.07.2015 Views

RealView Compilation Tools コンパイラユーザガイド - ARM ...

RealView Compilation Tools コンパイラユーザガイド - ARM ...

RealView Compilation Tools コンパイラユーザガイド - ARM ...

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

イ ン ラ イ ンアセン ブ ラ と 組 み 込 みアセン ブ ラの 使 用7.2.6 手 動 によ る 多 重 定 義 の 解 決例 7-4 に、 C++ のキ ャ ス ト を 使 用 し た、 非 仮 想 関 数 呼 び 出 し の 多 重 定 義 の 解決 を 示 し ます。例 7-4 C++ のキャ ス トvoid g(int);void g(long);struct T{int mf(int);int mf(int,int);};__asm void f(T*, int, int){BL __cpp(static_cast(&T::mf)) // calls T::mf(int, int)BL __cpp(static_cast(g)) // calls g(int)BX lr}7.2.7 関 連 ベース ク ラ スのキーワー ド以 下 のキーワー ド を 使 用 し て、 オブジ ェ ク ト の 開 始 位 置 か ら、 そのオブジ ェク ト 内 のベース ク ラ スサブオブジ ェ ク ト までのオフセ ッ ト を 決 定 で き ます。__offsetof_base(D, B)B は、 D の 明 白 な 非 仮 想 ベース ク ラ スであ る 必 要 があ り ます。D オブジ ェ ク ト の 開 始 位 置 か ら、 そのオブジ ェ ク ト 内 の B ベースサブオブジェ ク ト の 開 始 位 置 までのオフセッ ト を 返 し ます。 結 果がゼロになる こ と も あ り ます。 例 7-5 (ページ 7-26) に、static_cast(p) と 等 価 な コー ド を 実 装 する ために D* p に 加 算する 必 要 のあ る オフセ ッ ト (バ イ ト 単 位 ) を 示 し ます。<strong>ARM</strong> DUI 0205IJ Copyright © 2002-2010 <strong>ARM</strong> Limited. All rights reserved. 7-25ID 100419Non-Confidential,

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

Saved successfully!

Ooh no, something went wrong!