Documentation Home
> Sun Studio 12: C ユーザーズガイド
Sun Studio 12: C ユーザーズガイド
Book Information
索引
はじめに
第 1 章 C コンパイラの紹介
1.1 Sun Studio 12 C 5.9 コンパイラの新機能
1.1.1 64 ビットプラットフォーム用のコンパイル
1.1.2 x86 の特記事項
1.1.3 バイナリの互換性の妥当性検査
1.2 準拠規格
1.3 C Readme ファイル
1.4 マニュアルページ
1.5 コンパイラの構成
1.6 C 関連のプログラミングツール
第 2 章 Sun の実装に固有の C コンパイラ情報
2.1 定数
2.1.1 整数定数
2.1.2 文字定数
2.2 リンカースコープ指示子
2.3 スレッドローカルな記憶領域指示子
2.4 浮動小数点 (非標準モード)
2.5 値としてのラベル
2.6 long long データ型
2.6.1 long long データ型の入出力
2.6.2 通常の算術変換
2.7 表明 (assertion)
2.8 プラグマ
2.8.1 align
2.8.2 c99
2.8.3 does_not_read_global_data
2.8.4 does_not_return
2.8.5 does_not_write_global_data
2.8.6 error_messages
2.8.7 fini
2.8.8 hdrstop
2.8.9 ident
2.8.10 init
2.8.11 inline
2.8.12 int_to_unsigned
2.8.13 MP serial_loop
2.8.14 MP serial_loop_nested
2.8.15 MP taskloop
2.8.16 nomemorydepend
2.8.17 no_side_effect
2.8.18 opt
2.8.19 pack
2.8.20 pipeloop
2.8.21 rarely_called
2.8.22 redefine_extname
2.8.23 returns_new_memory
2.8.24 unknown_control_flow
2.8.25 unroll
2.8.26 warn_missing_parameter_info
2.8.27 weak
2.9 事前に定義されている名前
2.10 errno の値
2.11 _Restrict キーワード
2.12 _ _asm キーワード
2.13 環境変数
2.13.1 OMP_DYNAMIC
2.13.2 OMP_NESTED
2.13.3 OMP_NUM_THREADS
2.13.4 OMP_SCHEDULE
2.13.5 PARALLEL
2.13.6 SUN_PROFDATA
2.13.7 SUN_PROFDATA_DIR
2.13.8 SUNPRO_SB_INIT_FILE_NAME
2.13.9 SUNW_MP_THR_IDLE
2.13.10 TMPDIR
2.14 インクルードファイルを指定する方法
2.14.1 -I- オプションによる検索アルゴリズムの変更
2.14.1.1 警告
第 3 章 Sun C コードの並列化
3.1 概要
3.1.1 使用例
3.2 OpenMP に対する並列化
3.2.1 OpenMP の実行時の警告の処理
3.3 環境変数
3.3.1 PARALLEL
3.3.1.1 SUNW_MP_THR_IDLE
SUNW_MP_WARN
STACKSIZE
3.3.1.2 キーワード
3.4 データの依存性と干渉
3.4.1 並列実行モデル
3.4.2 固有スカラーと固有配列
3.4.3 ストアバック変数の使用
3.4.4 縮約変数の使用
3.5 処理速度の向上
3.5.1 アムダールの法則
3.5.1.1 オーバーヘッド
3.5.1.2 ガスタフソンの法則
3.6 負荷バランスとループのスケジューリング
3.6.1 静的 (チャンク) スケジューリング
3.6.2 セルフスケジューリング
3.6.3 ガイド付きセルフスケジューリング
3.7 ループの変換
3.7.1 ループの分散
3.7.2 ループの融合
3.7.3 ループの交換
3.8 別名と並列化
3.8.1 配列およびポインタの参照
3.8.2 制限付きポインタ
3.8.3 明示的な並列化およびプラグマ
3.8.3.1 直列プラグマ
3.8.3.2 並列プラグマ
for ループの入れ子
並列化の適切性
プロセッサの数
変数の分類
スレッド固有変数と共有変数のデフォルトのスコープの規則
private 変数
shared 変数
readonly 変数
storeback 変数
savelast
reduction 変数
スケジューリングの制御
第 4 章 lint ソースコード検査プログラム
4.1 基本 lint と拡張 lint
4.2 使用方法
4.3 lint のオプション
4.3.1 -#
4.3.2 -###
4.3.3 -a
4.3.4 -b
4.3.5 -C <ファイル名>
4.3.6 -c
4.3.7 -dirout=<ディレクトリ>
4.3.8 -err=warn
4.3.9 -errchk=l(, l)
4.3.10 -errfmt=f
4.3.11 -errhdr=h
4.3.12 -erroff=タグ(, タグ)
4.3.13 -errsecurity=v
4.3.14 -errtags=a
4.3.15 -errwarn=t
4.3.16 -F
4.3.17 -fd
4.3.18 -flagsrc=<ファイル>
4.3.19 -h
4.3.20 -I<ディレクトリ>
4.3.21 -k
4.3.22 -L<ディレクトリ>
4.3.23 -lx
4.3.24 -m
4.3.25 -m32|-m64
4.3.26 -Ncheck=c
4.3.27 -Nlevel=n
4.3.27.1 -Nlevel=1
4.3.27.2 -Nlevel=2
4.3.27.3 -Nlevel=3
4.3.27.4 -Nlevel=4
4.3.28 -n
4.3.29 -ox
4.3.30 -p
4.3.31 -Rファイル
4.3.32 -s
4.3.33 -u
4.3.34 -V
4.3.35 -v
4.3.36 -W<ファイル>
4.3.37 -XCC=a
4.3.38 -Xalias_level[= l]
4.3.39 -Xarch=amd64
4.3.40 -Xarch=v9
4.3.41 -Xc99[= o]
4.3.42 -Xexplicitpar=a
4.3.43 -Xkeeptmp=a
4.3.44 -Xtemp=<ディレクトリ>
4.3.45 -Xtime=a
4.3.46 -Xtransition=a
4.3.47 -Xustr={ascii_utf16_ushort| no}
4.3.48 -x
4.3.49 -y
4.4 lint のメッセージ
4.4.1 メッセージを抑制するオプション
4.4.2 lint メッセージの形式
4.5 lint の指令
4.5.1 事前定義された値
4.5.2 指令
4.6 lint の参考情報と例
4.6.1 lint が行う診断
4.6.1.1 整合性の検査
4.6.1.2 移植性の検査
4.6.1.3 疑わしい言語構造
4.6.2 lint ライブラリ
4.6.3 lint フィルタ
第 5 章 型に基づく別名解析
5.1 型に基づく解析の概要
5.2 微調整におけるプラグマの使用
5.2.1 #pragma alias_level level (list)
5.2.1.1 #pragma alias (type, type [, type]…)
5.2.1.2 #pragma alias (pointer, pointer [, pointer] …)
5.2.1.3 #pragma may_point_to (pointer, variable [, variable] …)
5.2.1.4 #pragma noalias (type, type [, type]…)
5.2.1.5 #pragma noalias (pointer, pointer [, pointer] …)
5.2.1.6 #pragma may_not_point_to (pointer, variable [, variable] …)
5.3 lint によるチェック
5.3.1 構造体ポインタへのスカラーポインタのキャスト
5.3.2 構造体ポインタへの void ポインタのキャスト
5.3.3 構造体ポインタへの構造体フィールドのキャスト
5.3.4 明示的な別名設定が必要
5.4 メモリー参照の制限の例
第 6 章 ISO C への移行
6.1 基本モード
6.1.1 -Xc
6.1.2 -Xa
6.1.3 -Xt
6.1.4 -Xs
6.2 古い形式の関数と新しい形式の関数の併用
6.2.1 新しいコードを書く
6.2.2 既存のコードを更新する
6.2.3 併用に関する考慮点
6.3 可変引数を持つ関数
6.4 拡張: 符号なし保存と値の保持
6.4.1 背景
6.4.2 コンパイルの動作
6.4.3 例 1 : キャストの使用
6.4.4 ビットフィールド
6.4.5 例 2 : 同じ結果
6.4.6 整数定数
6.4.7 例 3 : 整数定数
6.5 トークン化と前処理
6.5.1 ISO C の翻訳段階
6.5.2 古い C の翻訳段階
6.5.3 論理的なソース行
6.5.4 マクロ置換
6.5.5 文字列の使用
6.5.6 トークンの連結
6.6 const と volatile
6.6.1 右辺値 (lvalue) 専用の型
6.6.2 派生型の型修飾子
6.6.3 const は readonly を意味する
6.6.4 const の使用例
6.6.5 volatile は文字どおりの解釈を意味する
6.6.6 volatile の使用例
6.7 複数バイト文字とワイド文字
6.7.1 アジア言語は複数バイト文字を必要とする
6.7.2 符号化の種類
6.7.3 ワイド文字
6.7.4 変換関数
6.7.5 C 言語の機能
6.8 標準ヘッダーと予約名
6.8.1 標準ヘッダー
6.8.2 実装で使用される予約名
6.8.3 拡張用の予約名
6.8.4 安全に使用できる名前
6.9 国際化
6.9.1 ロケール
6.9.2 setlocale() 関数
6.9.3 変更された関数
6.9.4 新しい関数
6.10 式のグループ化と評価
6.10.1 定義
6.10.2 K&R C の再配置の権利
6.10.3 ISO C の規則
6.10.4 括弧
6.10.5 as if 規則
6.11 不完全な型
6.11.1 型
6.11.2 不完全な型を完全にする
6.11.3 宣言
6.11.4 式
6.11.5 正当性
6.11.6 例
6.12 互換型と複合型
6.12.1 複数の宣言
6.12.2 分割コンパイル間の互換性
6.12.3 単一のコンパイルでの互換性
6.12.4 互換ポインタ型
6.12.5 互換配列型
6.12.6 互換関数型
6.12.7 特別な場合
6.12.8 複合型
第 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 ツール
7.2.2.1 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 プログラムの検査
8.1 cscope プロセス
8.2 基本的な使用方法
8.2.1 ステップ 1: 環境設定
8.2.2 ステップ 2: cscope プログラムの起動
8.2.3 ステップ 3: コード位置の確定
8.2.4 ステップ 4: コードの編集
8.2.5 コマンド行オプション
8.2.6 ビューパス (Viewpath)
8.2.7 cscope とエディタ呼び出しのスタック
8.2.8 例
8.2.8.1 例 1: 定数をプリプロセッサシンボルに変更する
8.2.8.2 例 2: 関数に引数を追加する
8.2.8.3 例 3: 変数の値を変更する
8.2.9 エディタのコマンド行構文
8.3 不明な端末タイプのエラー
付録 A 機能別コンパイラオプション
A.1 機能別のオプションのまとめ
A.1.1 最適化とパフォーマンスのオプション
A.1.2 コンパイル時とリンク時のオプション
A.1.3 データ境界整列のオプション
A.1.4 数値と浮動小数点のオプション
A.1.5 並列化のオプション
A.1.6 ソースコードのオプション
A.1.7 コンパイル済みコードのオプション
A.1.8 コンパイルモードのオプション
A.1.9 診断のオプション
A.1.10 デバッグのオプション
A.1.11 リンクとライブラリのオプション
A.1.12 対象プラットフォームのオプション
A.1.13 x86 固有のオプション
A.1.14 ライセンスのオプション
A.1.15 旧式のオプション
付録 B C コンパイラオプションリファレンス
B.1 オプションの構文
B.2 cc オプション
B.2.1 -#
B.2.2 -###
B.2.3 -A<名前>[ (<トークン>)]
B.2.4 -B[static| dynamic]
B.2.5 -C
B.2.6 -c
B.2.7 -D<名前>[(<引数>[,<引数>])][=<展開>]
B.2.8 -d[y|n]
B.2.9 -dalign
B.2.10 -E
B.2.11 -errfmt[=[ no%]error]
B.2.12 -erroff[= t]
B.2.13 -errshort[= i]
B.2.14 -errtags[= a]
B.2.15 -errwarn[= t]
B.2.16 -fast
B.2.17 -fd
B.2.18 -features=[[no%]extinl|%none]
B.2.19 -flags
B.2.20 -flteval[={any|2}]
B.2.21 -fma[={none| fused}]
B.2.22 -fnonstd
B.2.23 -fns[={no|yes}]
B.2.24 -fprecision=p
B.2.25 -fround=r
B.2.26 -fsimple[= n]
B.2.27 -fsingle
B.2.28 -fstore
B.2.29 -ftrap=t[,t...]
B.2.30 -G
B.2.31 -g
B.2.32 -H
B.2.33 -h <名前>
B.2.34 -I[-|<ディレクトリ>]
B.2.35 -i
B.2.36 -KPIC
B.2.37 -Kpic
B.2.38 -keeptmp
B.2.39 -L<ディレクトリ>
B.2.40 -l<名前>
B.2.41 -m32|-m64
B.2.42 -mc
B.2.43 -misalign
B.2.44 -misalign2
B.2.45 -mr[, <文字列>]
B.2.46 -mt
B.2.47 -native
B.2.48 -nofstore
B.2.49 -O
B.2.50 -o <出力ファイル>
B.2.51 -P
B.2.52 -p
B.2.53 -Q[y|n]
B.2.54 -qp
B.2.55 -R<ディレクトリ>[ :<ディレクトリ>]
B.2.56 -S
B.2.57 -s
B.2.58 -U<名前>
B.2.59 -V
B.2.60 -v
B.2.61 -Wc,<引数>
B.2.62 -w
B.2.63 -X[c|a|t|s]
B.2.64 -x386
B.2.65 -x486
B.2.66 -xa
B.2.67 -xalias_level[= l]
B.2.68 -xarch=isa
B.2.68.1 SPARC での -xarch のフラグ
B.2.68.2 x86 での -xarch のフラグ
x86 の特記事項
バイナリの互換性の妥当性検査
B.2.68.3 SPARC 用のデフォルト
B.2.68.4 x86 用のデフォルト
B.2.69 -xautopar
B.2.70 -xbinopt={prepare| off}
B.2.71 -xbuiltin[=( %all|%none)]
B.2.72 -xCC
B.2.73 -xc99[= o]
B.2.74 -xcache[= c]
B.2.75 -xcg[89| 92]
B.2.76 -xchar[= o]
B.2.77 -xchar_byte_order[= o]
B.2.78 -xcheck[= o]
B.2.79 -xchip[= c]
B.2.80 -xcode[= v]
B.2.81 -xcrossfile[= n]
B.2.82 -xcsi
B.2.83 -xdebugformat=[stabs|dwarf]
B.2.84 -xdepend=[yes| no]
B.2.85 -xdryrun
B.2.86 -xe
B.2.87 -xexplicitpar
B.2.88 -xF[=v[, v...]]
B.2.88.1 値
B.2.89 -xhelp=f
B.2.90 -xhwcprof
B.2.91 -xinline=<リスト>
B.2.92 -xinstrument=[ no%]datarace
B.2.93 -xipo[= a]
B.2.93.1 例
B.2.93.2 -xipo=2 による内部手続き解析を行うべきでないケース
B.2.94 -xipo_archive=[a]
B.2.95 -xjobs=n
B.2.96 -xldscope={v}
B.2.97 -xlibmieee
B.2.98 -xlibmil
B.2.99 -xlibmopt
B.2.100 -xlic_lib=sunperf
B.2.101 -xlicinfo
B.2.102 -xlinkopt[= レベル]
B.2.103 -xloopinfo
B.2.104 -xM
B.2.105 -xM1
B.2.106 -xMD
B.2.107 -xMF <ファイル名>
B.2.108 -xMMD
B.2.109 -xMerge
B.2.110 -xmaxopt[=v]
B.2.111 -xmemalign=ab
B.2.112 -xmodel=[a]
B.2.113 -xnolib
B.2.114 -xnolibmil
B.2.115 -xnolibmopt
B.2.116 -xnorunpath
B.2.117 -xO[1|2| 3|4|5]
B.2.117.1 SPARC での最適化について
B.2.117.2 x86 での最適化について
B.2.118 -xopenmp[= i]
B.2.119 -xP
B.2.120 -xpagesize=n
B.2.121 -xpagesize_heap=n
B.2.122 -xpagesize_stack=n
B.2.123 -xparallel
B.2.124 -xpch=v
B.2.124.1 プリコンパイル済みヘッダーファイルの自動作成
B.2.124.2 プリコンパイル済みヘッダーファイルの手動作成
B.2.124.3 既存のプリコンパイル済みヘッダーファイルの処理方法
B.2.124.4 特定のプリコンパイル済みヘッダーファイルの使用の指定
B.2.124.5 活性文字列 (Viable Prefix)
B.2.124.6 ヘッダーファイルの妥当性の判定
B.2.124.7 プリコンパイル済みヘッダーファイルのキャッシュ
B.2.124.8 警告
B.2.124.9 プリコンパイル済みヘッダーファイルの依存関係と make ファイル
B.2.125 -xpchstop=[<ファイル>|<include>]
B.2.126 -xpentium
B.2.127 -xpg
B.2.128 -xprefetch[= val[,val]]
B.2.128.1 先読み応答率
B.2.129 -xprefetch_auto_type=a
B.2.130 -xprefetch_level=l
B.2.131 -xprofile=p
B.2.132 -xprofile_ircache[=<パス名>]
B.2.133 -xprofile_pathmap
B.2.134 -xreduction
B.2.135 -xregs=r[, r…]
B.2.136 -xrestrict[= f]
B.2.137 -xs
B.2.138 -xsafe=mem
B.2.139 -xsb
B.2.140 -xsbfast
B.2.141 -xsfpconst
B.2.142 -xspace
B.2.143 -xstrconst
B.2.144 -xtarget=t
B.2.144.1 SPARC プラットフォームの -xtarget の値
B.2.144.2 x86 プラットフォームの -xtarget の値
B.2.145 -xtemp=<ディレクトリ>
B.2.146 -xthreadvar[= o]
B.2.147 -xtime
B.2.148 -xtransition
B.2.149 -xtrigraphs
B.2.150 -xunroll=n
B.2.151 -xustr={ascii_utf16_ushort|no}
B.2.152 -xvector[= a]
B.2.153 -xvis
B.2.154 -xvpara
B.2.155 -Yc, <ディレクトリ>
B.2.156 -YA, <ディレクトリ>
B.2.157 -YI, <ディレクトリ>
B.2.158 -YP, <ディレクトリ>
B.2.159 -YS, <ディレクトリ>
B.2.160 -Zll
B.3 リンカーに渡されるオプション
付録 C ISO/IEC C 99 の処理系定義の動作
C.1 処理系定義の動作 (J.3)
C.1.1 翻訳 (J.3.1)
C.1.2 環境 (J.3.2)
C.1.3 識別子 (J.3.3)
C.1.4 文字 (J.3.4)
C.1.5 整数 (J.3.5)
C.1.6 浮動小数点 (J.3.6)
C.1.7 配列とポインタ (J.3.7)
C.1.8 ヒント (J.3.8)
C.1.9 構造体、共用体、列挙型、およびビットフィールド (J.3.9)
C.1.10 修飾子 (J.3.10)
C.1.11 前処理指令 (J.3.11)
C.1.12 ライブラリ関数 (J.3.12)
C.1.13 アーキテクチャー (J.3.13)
C.1.14 ロケール固有の動作 (J.4)
付録 D C99 でサポートされている機能
D.1 説明と使用例
D.1.1 浮動小数点評価における精度
D.1.2 C99 のキーワード
D.1.2.1 restrict キーワードの使用
D.1.3 __func__ のサポート
D.1.4 汎用文字名 (UCN)
D.1.5 // を使用したコードのコメント処理
D.1.6 暗黙の int および暗黙の関数宣言の禁止
D.1.7 暗黙の int を使用した宣言
D.1.8 柔軟な配列のメンバー
D.1.9 べき等修飾子
D.1.10 inline 関数
D.1.11 配列宣言子で使用可能な Static およびそのほかの型修飾子
D.1.12 可変長配列 (VLA)
D.1.13 指示付きの初期化子
D.1.14 型宣言とコードの混在
D.1.15 for ループ文での宣言
D.1.16 引数の個数が可変するマクロ
D.1.17 _Pragma
付録 E ISO/IEC C90 の処理系定義の動作
E.1 ISO 規格との実装の比較
E.1.1 翻訳 (G.3.1)
E.1.1.1 (5.1.1.3) 診断の認識
E.1.2 環境 (G.3.2)
E.1.2.1 (5.1.2.2.1) main の引数の意味
(5.1.2.3) 対話型デバイスを構成するもの
E.1.3 識別子 (G.3.3)
E.1.3.1 (6.1.2) 外部リンケージのない識別子の先頭から (31 を超える) 有意文字の数
(6.1.2) 外部リンケージのある識別子の先頭から (6 を超える) 有意文字の数
E.1.4 文字 (G.3.4)
E.1.4.1 (5.2.1) ソースと実行の文字セットについて (規格に明確に規定されているものを除く)
(5.2.1.2) 複数バイト文字を符号化するためのシフト状態について
(5.2.4.2.1) 実行文字セットで 1 文字のビット数
(6.1.3.4) ソース文字セット (文字と文字列リテラル) メンバーの実行文字セットメンバーへの配置
(6.1.3.4) 基本の実行文字セット、またはワイド文字定数用の拡張文字セットのどちらにも表現されていない文字や、エスケープシーケンスを含む整数文字定数の値
(6.1.3.4) 2 つ以上の文字を含む整数文字定数の値、または 2 つ以上の複数バイト文字を含むワイド文字定数の値
(6.1.3.4) 複数バイト文字を対応するワイド文字 (コード) に変換するのに使用される現ロケール (locale)
(6.2.1.1) 何も付いていない char は、signed char と、unsigned char のどちらと同じ範囲の値を持つか
E.1.5 整数 (G.3.5)
E.1.5.1 (6.1.2.5) 整数の型の表現と値について
(6.2.1.2) 値を表現できない場合に整数をより短い符号付き整数に変換した結果、また符号なしの整数を同じ長さの符号付き整数に変換した結果
(6.3) 符号付き整数におけるビット単位演算の結果
(6.3.5) 整数の除算における剰余の符号について
(6.3.7) 負の値を持つ符号付き整数型を右シフトした結果
E.1.6 浮動小数点 (G.3.6)
E.1.6.1 (6.1.2.5) 浮動小数点数の型の表現と値
(6.2.1.3) 整数値が元の値を完全には表現できない浮動小数点数に変換された場合の切り捨ての指示
(6.2.1.4) 浮動小数点数が短い浮動小数点数に変換された場合の切り捨てまたは丸めの指示
E.1.7 配列とポインタ (G.3.7)
E.1.7.1 (6.3.3.4, 7.1.1) 配列の最大サイズを維持するのに必要な整数型。 すなわち、sizeof 演算子の size_t の型
(6.3.4) ポインタを整数に cast で型変換した結果、またはその逆の結果
(6.3.6, 7.1.1) 同じ配列のメンバーへの 2 つのポインタの相違 ptrdiff_t を維持するのに必要な整数型
E.1.8 レジスタ (G.3.8)
E.1.8.1 (6.5.1) register 記憶クラス指定子を使用して、オブジェクトを実際に入れることのできるレジスタの数
E.1.9 構造体、共用体、列挙型、およびビットフィールド (G.3.9)
E.1.9.1 (6.3.2.3) 共用体のオブジェクトのメンバーはほかの型のメンバーを使用してアクセスされる
(6.5.2.1) 構造体のメンバーのパディングと整列条件
(6.5.2.1) 単なる int のビットフィールドは signed int ビットフィールドとみなされるか、unsigned int ビットフィールドとみなされるか
(6.5.2.1) int 内のビットフィールドの割り当て順序
(6.5.2.1) ビットフィールドは記憶装置の境界を越えることができるか
(6.5.2.2) 列挙型の値を表現するための整数型
E.1.10 修飾子 (G.3.10)
E.1.10.1 (6.5.5.3) volatile 修飾子型を持つオブジェクトへのアクセス方法
E.1.11 宣言子 (G.3.11)
E.1.11.1 (6.5.4) 算術演算、構造体、または共用体の型が修正可能な宣言子の最大数
E.1.12 文 (G.3.12)
E.1.12.1 (6.6.4.2) switch 文中の case 値の最大個数
E.1.13 プリプロセッサ指令 (G.3.13)
E.1.13.1 (6.8.1) 条件付きのインクルードを制御する定数式のシングルキャラクタ文字定数の値は、実行文字セット中の同一の文字定数の値に一致するか
(6.8.1) そのような文字定数は負の値をとり得るか
(6.8.2) インクルード可能なソースファイルの位置を知る方法
(6.8.2) インクルード可能なソースファイルの引用符付きの名前のサポート
(6.8.2) ソースファイルの文字シーケンスの配置
(6.8.6) 認識された #pragma 命令の動作
(6.8.8) 翻訳の日付と時間がわからないときの __DATE__ と __TIME__ の定義
E.1.14 ライブラリ関数 (G.3.14)
E.1.14.1 (7.1.6) マクロの NULL を拡張した null ポインタ定数
(7.2) assert 関数によって出力される診断と assert 関数の終了動作
(7.3.1) isalnum、isalpha、iscntrl、islower、isprint、 および isupper 関数によってテストされる文字セット
(7.5.1) ドメインエラーの数値演算関数によって返される値
(7.5.1) アンダーフローエラーの場合に、数値演算関数が整数式 errno をマクロ ERANGE の値に設定するかどうか
(7.5.6.4) fmod 関数の第 2 引数が 0 を持つ場合に、ドメインエラーとなるか、0 が返されるか
(7.7.1.1) signal 関数に対するシグナルの設定
(7.7.1.1) signal 関数によって認識される各 signal のデフォルトの取扱い、およびプログラムのスタートアップ時における取扱い
(7.7.1.1) シグナルハンドラを呼び出す前に signal(sig, SIG_DFL); 相当のものが実行されない場合は、どのシグナルがブロックされるか
(7.7.1.1) SIGILL 関数に指定されたハンドラにより SIGILL シグナルが受信された場合は、デフォルト処理はリセットされるか
(7.9.2) テキストストリームの最終行で、改行文字による終了を必要とするか
(7.9.2) 改行文字の直前でテキストストリームに書き出されたスペース文字は読み込みの際に表示されるか
(7.9.2) バイナリストリームに書かれたデータに追加することのできる null 文字の数
(7.9.3) アペンドモードのストリームのファイル位置指示子は、最初にファイルの始まりと終わりのどちらに置かれるか
(7.9.3) テキストストリームへの書き込みを行うと、書き込み点以降の関連ファイルが切り捨てられるか
(7.9.3) ファイルのバッファリングの特徴
(7.9.3) ゼロ長ファイルは実際に存在するか
(7.9.3) 有効なファイル名を作成するための規則
(7.9.3) 同一のファイルを何回も開くことができるか
(7.9.4.1) 開いたファイルへの remove 関数の効果
(7.9.4.2) rename 関数を呼び出す前に新しい名前を持つファイルがあった場合、そのファイルはどうなるか
(7.9.6.1) fprintf 関数における %p 変換の出力
(7.9.6.2) fscanf 関数における %p 変換の入力
(7.9.6.2) fscanf 関数における %[ 変換のための走査リストで最初の文字でも最後の文字でもないハイフン文字 - の解釈
E.1.15 ロケール固有の動作 (G.4)
E.1.15.1 (7.12.1) 現地時間帯と夏時間の設定
(7.12.2.1) clock 関数の経過時間
(5.2.1) 必要なメンバー以外の実行文字セットの内容
(5.2.2) 印刷方向
(7.1.1) 10 進小数点を表わす文字
(7.3) 処理系ごとに定義される文字テストおよびケース配置関数の項目
(7.11.4.4) 実行文字セットの照合シーケンス
(7.12.3.5) 時間と日付の書式
付録 F ISO C データ表現
F.1 記憶装置の割り当て
F.2 データ表現
F.2.1 整数表現
F.2.2 浮動小数点表現
F.2.3 極値表現
F.2.4 重要な数の 16 進数表現
F.2.5 ポインタ表現
F.2.6 配列の格納
F.2.7 極値の算術演算
F.3 引数を渡す仕組み
F.3.1 32 ビット SPARC
F.3.1.1 64 ビット SPARC
(x86)
付録 G パフォーマンスチューニング (SPARC)
G.1 制限
G.2 libfast.a ライブラリ
付録 H K&R Sun C と Sun ISO C の違い
H.1 K&R Sun C と Sun ISO C との間の非互換性
H.2 キーワード
© 2010, Oracle Corporation and/or its affiliates