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.

コーディング 慣 行<strong>ARM</strong>v6 以 降 のアーキテ ク チ ャ では、 非 境 界 整 列 ア ク セスは 完 全 にサポー ト されています。5.5.3 __packed 修 飾 子 と 非 境 界 整 列 型 のデー タ ア ク セス__packed 修 飾 子 を 指 定 する と 、 すべての 有 効 な 型 の 境 界 整 列 が 1 に 設 定 されます。 こ れに よ り 、 非 境 界 整 列 型 ア ク セス を 使 用 し て、 パ ッ ク 型 オブジ ェ ク トの 読 み 出 し と 書 き 込 みを 行 え る よ う にな り ます。パックできるオブジェク トの 例 は 以 下 のとおりです。• 構 造 体• 共 用 体• ポインタ__packed 修 飾 子 の 詳 細 については、 『コンパイ ラ リ ファレンスガイ ド』 の「__packed」 (ページ 4-12) を 参 照 して 下 さい。構 造 体 に 含 まれる 非 境 界 整 列 型 フ ィ ール ド効 率 性 を 高 め る ため、 構 造 体 内 のフ ィ ール ド は、 データ 自 身 と 同 じ サ イ ズの境 界 上 に 配 置 さ れます。 そのため、 多 く の 場 合 、 コ ンパ イ ラ では、 フ ィ ールド を 境 界 整 列 する ために、 フ ィ ール ド 間 にパデ ィ ングが 挿 入 さ れます。容 量 が 重 視 さ れる 場 合 は、 __packed 修 飾 子 を 使 用 し て、 フ ィ ール ド 間 にパデ ィングが 挿 入 されていない 構 造 体 を 作 成 できます。 構 造 体 は 次 の 2 とおりの 方 法でパッ クでき ます。• struct 全 体 を __packed として 宣 言 できます。 以 下 に 例 を 示 し ます。__packed struct mystruct{char c;short s;} // not recommended構 造 体 の 各 フ ィ ール ド は、 __packed 修 飾 子 を 継 承 し ます。通 常 、 struct 全 体 を __packed と し て 宣 言 する と 、 コー ド サ イ ズが 増 大 するだけでなく、 パフォーマンスも 低 下 します。 詳 細 については、 「パ ック 構 造 体 と 個 別 パッ クフ ィールド」 (ページ 5-33) を 参 照 して 下 さい。• struct 内 の 個 々の 非 境 界 整 列 型 フ ィ ール ド は、 __packed として 宣 言 できます。 以 下 に 例 を 示 し ます。<strong>ARM</strong> DUI 0205IJ Copyright © 2002-2010 <strong>ARM</strong> Limited. All rights reserved. 5-31ID 100419Non-Confidential,

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

Saved successfully!

Ooh no, something went wrong!