JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.3: C ユーザーガイド     Oracle Solaris Studio 12.3 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  C コンパイラの紹介

2.  C コンパイラ実装に固有の情報

3.  C コードの並列化

4.  lint ソースコード検査プログラム

5.  型に基づく別名解析

6.  ISO C への移行

7.  64 ビット環境に対応するアプリケーションへの変換

7.1 データ型モデルの相違点

7.2 単一ソースコードの実現

7.2.1 派生型

7.2.1.1 <sys/types.h>

7.2.1.2 <inttypes.h>

固定幅の整数型

unintptr_t などの便利な型

定数マクロ

制限

書式文字列マクロ

7.2.2 lint によるチェック

7.3 LP64 データ型モデルへの変換

7.3.1 整数とポインタのサイズの変更

7.3.2 整数とロング整数のサイズの変更

7.3.3 符号拡張

7.3.4 整数の代わりのポインタ演算

7.3.5 構造体

7.3.6 共用体

7.3.7 型定数

7.3.8 暗黙の宣言に対する注意

7.3.9 sizeof( ) は符号なし long

7.3.10 型変換で意図を明確にする

7.3.11 書式文字列の変換操作を検査する

7.4 変換に関するその他の注意事項

7.4.1 注: サイズが大きくなった派生型

7.4.2 変更の副作用の検査

7.4.3 long のリテラル使用の効果持続の確認

7.4.4 明示的な 32 ビットと 64 ビットプロトタイプに対する #ifdef の使用

7.4.5 呼び出し規則の変更

7.4.6 アルゴリズムの変更

7.5 変換前の確認事項

8.  cscope: 対話的な C プログラムの検査

A.  機能別コンパイラオプション

B.  C コンパイラオプションリファレンス

C.  ISO/IEC C 99 の処理系定義の動作

D.  C99 の機能

E.  ISO/IEC C90 の処理系定義の動作

F.  ISO C データ表現

G.  パフォーマンスチューニング

H.  Oracle Solaris Studio C: K&R C と ISO C の違い

索引

7.1 データ型モデルの相違点

32 ビットと 64 ビットコンパイル環境の最大の違いは、データ型モデルにあります。

32 ビットアプリケーション用の C のデータ型モデルは ILP32 モデルです。この名前は、integer、long、pointer が 32 ビットデータ型であることから名付けられています。long と pointer が 64 ビットの大きさになったことから名付けられた LP64 データ型モデルは、業界の関連企業から構成されるコンソーシアムが作成したものです。残りの C データ型 intlong longshort、および char はどちらのデータ型モデルでも同じです。

C の整数型間の標準の関係は、次に示すようにデータ型モデルに関係なく有効です。

sizeof (char) <= sizeof (short) <= sizeof (int) <= sizeof (long)

ILP32 と LP64 データ型モデルの基本的な C のデータ型と対応するサイズ (単位: ビット) は、次の表に示すとおりです。

表 7-1 ILP32 と LP64 のデータ型のサイズ

C データ型
ILP32
LP64
char
8
8
short
16
16
int
32
32
long
32
64
long long
64
64
pointer
32
64
enum
32
32
float
32
32
double
64
64
long double
128
128

現在の 32 ビットアプリケーションでは通常、integer、pointer、および long は同じサイズとみなされます。ただし、LP64 データ型モデルでは long と pointer のサイズが変更されており、ILP32 から LP64 への変換で多くの問題の原因となる可能性があります。

また、宣言とキャストは非常に重要です。型が変化すると、式がどのように評価されるかが影響を受ける可能性があります。データ型のサイズが変わると、標準 C 変換規則の処理が影響を受けます。意図したことを正しく示すには、定数の型を明示的に宣言してください。式で型変換を使用して、意図したとおりに式が評価されるようにすることもできます。この方法は、意図したことを示す上で明示的な型変換が欠かせない符号拡張部で特に重要です。