ホーム目次前ページへ次ページへ索引

C ユーザーズガイド Sun Microsystems

目次

 製品名の変更について

 はじめに

1.  C コンパイラの紹介

準拠規格
日本語化について
コンパイラの構成
C 関連のプログラミングツール

2.  cc コンパイラオプション

オプションの構文
オプションの一覧
cc オプション
-#
-###
-A<名前>[(<トークン>)]
-B[static|dynamic]
-C
-c
-D<名前>[=<トークン>]
-d[y|n]
-dalign
-E
-erroff=t
-errtags=a
-errwarn=t
-fast
-fd
-flags
-fnonstd
-fns[={no,yes}]
-fprecision=p
-fround=r
-fsimple[=n]
-fsingle
-fstore
-ftrap=t
-G
-g
-H
-h<名前>
-I<ディレクトリ>
-i
-KPIC
-Kpic
-keeptmp
-L<ディレクトリ>
-l<名前>
-mc
-misalign
-misalign2
-mr
-mr,<文字列>
-mt
-native
-nofstore
-noqueue
-O
-o <出力ファイル>
-P
-p
-Q[y|n]
-qp
-R<ディレクトリ>[:<ディレクトリ>]
-S
-s
-U<名前>
-V
-v
-Wc,<引数>
-w
-X[a|c|s|t]
-x386
-x486
-xa
-xarch=isa
-xautopar
-xCC
-xcache=c
-xcg[89|92]
-xchar_byte_order=o
-xchip=c
-xcode=v
-xcrossfile[=n]
-xdepend
-xe
-xexplicitpar
-xF
-xhelp=f
-xildoff
-xildon
-xinline=[{%auto,<関数>,no%<関数>}[,{%auto,<関数>,no%<関数>}]...]
-xlibmieee
-xlibmil
-xlic_lib=sunperf
-xlicinfo
-xloopinfo
-xM
-xM1
-xMerge
-xmaxopt=off, 1, 2, 3, 4, 5
-xmemalign=ab
-xnolib
-xnolibmil
-xO[1|2|3|4|5]
-xP
-xparallel
-xpentium
-xpg
-xprefetch[=<値>],<値>
-xprofile=p
-xreduction
-xregs=r
-xrestrict=f
-xs
-xsafe=mem
-xsb
-xsbfast
-xsfpconst
-xspace
-xstrconst
-xtarget=t
-xtemp=<ディレクトリ>
-xtime
-xtransition
-xunroll=n
-xvector[={yes|no}
-xvpara
-Yc,<ディレクトリ>
-YA,<ディレクトリ>
-YI,<ディレクトリ>
-YP,<ディレクトリ>
-YS,<ディレクトリ>
-Zll
-Zlp
リンカーに渡されるオプション

3.  Sun ANSI/ISO C コンパイラに固有の情報

環境変数
TMPDIR
SUNPRO_SB_INIT_FILE_NAME
PARALLEL
SUNW_MP_THR_IDLE
大域動作: 値保存と符号なし保存
キーワード
asm
_Restrict
long long データ型
long long データ型の入出力
通常の算術変換
定数
整数定数
文字定数
インクルードファイル
非標準浮動小数点
前処理指令と名前
表明 (assertion)
プラグマ
#define を使った引数リストの変更
事前定義済みのデータ
事前定義済みの名前

4.  Sun ANSI/ISO C コードの並列化

概要
使用例
環境変数
データの依存性と干渉
並列実行モデル
固有スカラーと固有配列
ストアバック変数の使用
縮約変数の使用
処理速度の向上
アムダールの法則
負荷バランスとループのスケジューリング
静的 (チャンク) スケジューリング
セルフスケジューリング
ガイド付きセルフスケジューリング
ループの変換
ループの分散
ループの融合
ループの交換
別名と並列化
配列およびポインタの参照
制限付きポインタ
明示的な並列化およびプラグマ
コンパイラオプション

5.  インクリメンタルリンカー (ild)

インクリメンタルリンカーとは
インクリメンタルリンク処理の概要
ild の使用法
ild の動作
ild の制限事項
完全再リンクが行われる場合
ild 先送りリンクメッセージ
ild 再リンクメッセージ
例 1: 内部空き領域の不足
例 2: strip の実行
例 3: ild のバージョン
例 4: 変更されたファイルが多い
例 5: 新たな完全再リンク
例 6: 新たな作業用ディレクトリ
ild オプション
-a
-B dynamic | static
-d y|n
-e epsym
-g
-I <名前>
-i
-L<パス>
-lx
-m
-o <出力ファイル>
-Q y|n
-R<パス>
-s
-t
-u <シンボル名>
-V
-xildoff
-xildon
-YP,<ディレクトリのリスト>
-z allextract|defaultextract|weakextract
-z defs
-z i_dryrun
-z i_full
-z i_noincr
-z i_quiet
-z i_verbose
-z nodefs
コンパイラから ild に渡されるオプション
-a
-m
-t
-e epsym
-I <名前>
-u <シンボル名>
環境変数
注意事項
ild で使用できない ld オプション
-B symbolic
-b
-G
-h <名前>
-z muldefs
-z text
サポートされないその他のコマンド
-D <トークン>,<トークン>, ...
-F <名前>
-M <マップファイル>
-r
ild で使用するファイル

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

基本 lint と拡張 lint
使用方法
lint のオプション
-#
-###
-a
-b
-C<ファイル名>
-c
-dirout=<ディレクトリ>
-err=warn
-errchk=l(, l)
-errchk=locfmtchk
-errfmt=f
-errhdr=h
-erroff=<タグ>(,<タグ>)
-errtags=a
-errwarn=t
-F
-fd
-flagsrc=<ファイル>
-h
-I<ディレクトリ>
-k
-L<ディレクトリ>
-lx
-m
-Ncheck=c
-Nlevel=n
-n
-ox
-p
-R<ファイル>
-s
-u
-V
-v
-W<ファイル>
-x
-XCC=a
-Xarch=v9
-Xexplicitpar=a
-Xkeeptmp=a
-Xtemp=<ディレクトリ>
-Xtime=a
-Xtransition=a
-y
lint のメッセージ
メッセージを抑制するオプション
lint メッセージの形式
lint の指令
事前定義された値
指令
lint の参考情報と例
lint が行う検査
lint ライブラリ
lint フィルタ

7.  ANSI/ISO C への移行

基本モード
-Xa
-Xc
-Xs
-Xt
古い形式の関数と新しい形式の関数の併用
新しいコードを書く
既存のコードを更新する
併用に関する考慮点
可変引数を持つ関数
拡張: 符号なし保存と値の保持
背景
コンパイルの動作
例 1: キャストの使用
ビットフィールド
例 2: 同じ結果
整数定数
例 3: 整数定数
トークン化と前処理
ANSI/ISO C の翻訳段階
古い C の翻訳段階
論理的なソース行
マクロ置換
文字列の使用
トークンの連結
const と volatile
右辺値 (lvalue) 専用の型
派生型の型修飾子
const は readonly を意味する
const の使用例
volatile は文字通りの解釈を意味する
volatile の使用例
複数バイト文字とワイド文字
アジア言語は複数バイト文字を必要とする
符号化の種類
ワイド文字
変換関数
C 言語の機能
標準ヘッダーと予約名
調整の経緯
標準ヘッダー
実装で使用される予約名
拡張用の予約名
安全に使用できる名前
国際化
ロケール
setlocale() 関数
変更された関数
新しい関数
式のグループ化と評価
定義
K&R C の再配置ライセンス
ANSI/ISO C の規則
括弧
as if 規則
不完全な型
不完全な型を完全にする
宣言
正当性
互換型と複合型
複数の宣言
分割コンパイル間の互換性
単一のコンパイルでの互換性
互換ポインタ型
互換配列型
互換関数型
特別な場合
複合型

8.  アプリケーションの変換

データ型モデルの相違点
単一ソースコードの実現
派生型
ツール
LP64 データ型モデルへの変換
整数とポインタのサイズの変更
整数とロング整数のサイズの変更
符号の拡張
アドレス演算の代わりのポインタ演算
構造体
共用体
型定数
暗黙の宣言に対する注意
sizeof() は unsigned long
型変換で意図を明確にする
書式文字列の変換操作を検査する
その他の注意事項
サイズが大きくなった派生型
変更の副作用の検査
long のリテラル使用の合理性の確認
明示的な 32 ビットと 64 ビットプロトタイプに対する #ifdef の使用
呼び出し規則の変更
アルゴリズムの変更
変換前の確認事項

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

cscope プロセス
基本的な使用方法
ステップ 1:環境設定
ステップ 2:cscope プログラムの起動
ステップ 3:コード位置の確定
ステップ 4:コードの編集
コマンド行オプション
ビューパス (Viewpath)
cscope とエディタ呼び出しのスタック
cscope の使用例
エディタのコマンド行構文
不明な端末タイプのエラー

A.  ANSI C データ表現

記憶装置の割り当て
データ表現
整数表現
浮動小数点表現
極値表現
重要な数の 16 進数表現
ポインタ表現
配列の格納
極値の算術演算
引数を渡す仕組み

B.  処理系定義の動作

ANSI/ISO 規格との実装の比較
翻訳 (G.3.1)
環境 (G.3.2)
識別子 (G.3.3)
文字 (G.3.4)
整数 (G.3.5)
浮動小数点 (G.3.6)
配列とポインタ (G.3.7)
レジスタ (G.3.8)
構造体、共用体、列挙型、およびビットフィールド (G.3.9)
修飾子 (G.3.10)
宣言子 (G.3.11)
文 (G.3.12)
プリプロセッサ指令 (G.3.13)
ライブラリ関数 (G.3.14)
ロケール固有の動作 (G.4)

C.  パフォーマンスチューニング (SPARC)

制限
libfast.a ライブラリ

D.  K&R Sun C と Sun ANSI/ISO C の違い

K&R Sun C と Sun ANSI/ISO C との間の非互換性
Sun C と ANSI/ISO C における -Xs オプションの相違点
キーワード

 索引


サン・マイクロシステムズ株式会社
Copyright information. All rights reserved.
ホーム   |   目次   |   前ページへ   |   次ページへ   |   索引