12.07.2015 Views

RedHawk Linux User's Guide version 6.3 日本語版

RedHawk Linux User's Guide version 6.3 日本語版

RedHawk Linux User's Guide version 6.3 日本語版

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

32bitコードから64bitコードへの 移 植コーディング 要 件 5データ 型 のサイズ 532bitと64bitの 移 植 性 の 主 要 な 問 題 は、アドレスのサイズまたはint, long 等 のサイズとの 関 連連 に関 して 推 定 があってはならないということです。表 E-1は、AMD64システム 上 の<strong>RedHawk</strong> <strong>Linux</strong> 下 での 様 々なANSIデータ 型 のサイズを 示 します。表 E-1 データ 型 のサイズANSIデータ 型charshortintlonglong longintptr_t, uintptr_tfloatdoublelong doubleサイズ(Byte)1248884816様 々なデータ 型 のサイズを 取 得 するために「sizeof」 演 算 子 を 使 用 することが 可 能 です。( 例 :もし 変 数 int xがある 場 合 、sizeof(x)によりxのサイズを 取 得 することが 可 能 となります)この使 用 法 は 構 造造 体 もしくは 配郤 列 に 対 しても 働 きます。 例 えば、a_structという 名 前 の 構 造造 体 型 変数 がある 場 合 、どれくらいメモリが 必 要 となるのかを 調 べるためにsizeof(a_struct)を 使 用することが 可 能 です。long 型 5long 型 は64bitとなるため、longとintの 値 間 で 直 接 または 暗 黙 的 な 割 り 当 てまたは 比 較 をすべて 調 査 する 必 要 があります。 有 効 性 を 確 実 にするためlongとintの 間 の 割 り 当 ておよび 比 較 を 認めることをコンパイラに 任 せるすべてのキャストを 調 査 して 下 さい。longのサイズを 解 決 するためにBITS_PER_LONGマクロの 値 を 利 用 して 下 さい。もしintとlongが 異 なるサイズのままでなければならない 場 合 ( 例 : 既 存 の 公 開 API 定 義 のため)、64bit 項 目 の 値 が32bit 項 目 の 最 大 値 を 超 えないことを 確 かめるアサーションを 実 装 し、それが発 生 した 場 合 に 対 処 するための 例 外 条 件 を 生 成 して 下 さい。ポインタ 5ポインタは64bitとなるため、ポインタとintの 値 間 で 直 接 または 暗 黙 的 な 割 り 当 てまたは 比 較 もまたすべて 調 査 する 必 要 があります。ポインタとintの 間 の 割 り 当 ておよび 比 較 を 認 めることをコンパイラに 任 せるすべてのキャストを 削 除 して 下 さい。(ポインタのサイズと 等 しい) 可 変 サイズ 型 へ 型 を 変 更 して 下 さい。 表 E-2は 可 変 サイズのデータ 型 を 示 します。E-3

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

Saved successfully!

Ooh no, something went wrong!