C言語 入門書の次に読む本
2003年8月2日紙版発売
坂井弘亮 著
A5判/400ページ
定価2,728円(本体2,480円+税10%)
ISBN 4-7741-1797-8
ただいま弊社在庫はございません。
書籍の概要
この本の概要
C言語に関する入門文法書は数多く出版されており,何を選んで良いのかもわかりません。しかし英語の文法を学んでも英語が話せないのと同様に,どの入門書を読んでも,実際のプログラムを作ることはできません。本書は文法を理解した方に,実際のプログラム作成において必要な知識を解説します。
こんな方におすすめ
- C言語の入門書を読み終えた人
- C言語の文法書は理解したが、実際にプログラムを作成してみると、うまく行かない人
目次
1 基本的なスタイル
- 1.1 スタイルとは
- 1.2 分割コンパイルとリンク
- 1.2.1 なぜ分割するのか
- 1.2.2 1人で開発する場合にも利点はあるのか
- 1.2.3 分割の方法
- 1.2.4 分割の例
- 1.2.5 コンパイラの動作
- 1.2.6 名前の衝突
- 1.3 宣言
- 1.3.1 関数の暗黙の宣言
- 1.3.2 関数のプロトタイプ宣言
- 1.3.3 分割コンパイルへの応用
- 1.3.4 static接頭語
- 1.3.5 extern接頭語
- 1.3.6 変数の場合
- 1.3.7 まとめと問題点
- 1.4 ヘッダファイルの作成
- 1.4.1 ヘッダファイルとは
- 1.4.2 基本的な作り方
- 1.4.3 作成の例
- 1.4.4 作成の指針
- 1.4.5 voidの利用
- 1.4.6 enumの利用
- 1.4.7 constの利用
- 1.4.8 constを引数として利用
- 1.4.9 constで注意すべきこと
- 1.4.10 バグの例
2 ライブラリの作成
- 2.1 なぜライブラリを作成するのか
- 2.2 ヘッダファイルの作り方
- 2.2.1 マクロの定義
- 2.2.2 定数の定義
- 2.2.3 構造体,共用体の定義
- 2.2.4 型の定義
- 2.2.5 関数のプロトタイプ宣言
- 2.2.6 グローバル変数のextern宣言
- 2.2.7 他のライブラリにおけるヘッダファイルのインクルード
- 2.2.8 多重インクルードの問題
- 2.3 ライブラリの本体の作り方
- 2.3.1 マクロ,定数,構造体,共用体,型の定義
- 2.3.2 外部に公開する関数,グローバル変数の本体
- 2.3.3 外部に公開しない関数や広域変数の本体
- 2.3.4 ライブラリのヘッダファイルのインクルード
- 2.3.5 他のライブラリのヘッダファイルのインクルード
- 2.4 Makefile
- 2.5 乱数発生用ライブラリの作成
- 2.5.1 仕様
- 2.5.2 ライブラリのリスト
- 2.5.3 使用例
- 2.6 発展した話題
- 2.6.1 構造体のメンバの隠蔽
- 2.6.2 パブリックヘッダファイルとプライベートヘッダファイル
3 設計
- 3.1 アルゴリズム
- 3.1.1 アルゴリズムと設計
- 3.1.2 線形検索
- 3.1.3 学習
- 3.1.4 ハッシュ
- 3.2 データ構造
- 3.2.1 配列
- 3.2.2 リンクリスト
- 3.3 設計の例
- 3.4 メモリ管理用ライブラリの作成
- 3.4.1 ライブラリの概要
- 3.4.2 データ構造の設計
- 3.4.3 ライブラリのリスト
- 3.4.4 動作確認
4 バグを出さないために
- 4.1 ツールの利用
- 4.2 バグを発生させないコーディング
- 4.2.1 1つのローカル変数を複数の目的に使用しない
- 4.2.2 関数の引数を別の用途に利用しない
- 4.2.3 malloc()とfree()は近くに書く
- 4.2.4 構造体は作成すると同時に初期化する
- 4.2.5 関連のあるコードは近くに置く
- 4.2.6 ポインタのNULLクリア
- 4.2.7 キャストは少なく
- 4.2.8 キャストは多く
- 4.2.9 名前の付け方を統一する
- 4.2.10 sizeof(char)の明示
- 4.2.11 チェックしやすい書き方を選択
- 4.2.12 意図の伝わらない書き方はしない
- 4.2.13 良く考えて書く
- 4.3 バグ発生後に対処しやすいコーディング
- 4.3.1 解放したらNULLクリアする
- 4.3.2 関数の先頭で引数のチェックを行う
- 4.4 調査のためのコーディング
- 4.4.1 関連のあるものは,1つのディレクトリにまとめる
- 4.4.2 関数を複数行に分けない
- 4.4.3 grepでの検索を意識する
- 4.4.4 自作ツールの利用を意識する
- 4.5 すぐに修正/確認ができること
- 4.5.1 中括弧を省略しない
- 4.5.2 returnは1箇所でまとめる
- 4.5.3 似た処理は1箇所にまとめる
- 4.5.4 すぐに確認を行う
- 4.6 将来性があること
- 4.6.1 ブロックのネストを深くしない
- 4.6.2 gotoの利用をためらわない
- 4.7 コーディング時に気をつけること まとめ
- 4.7.1 楽すること
- 4.7.2 癖づけ
- 4.7.3 他人のことを考える
- 4.7.4 規格や文法を過信しない
- 4.7.5 ANSI規格
5 デバッグ
- 5.1 デバッグコード
- 5.1.1 abort(),assert()の利用
- 5.1.2 syslog()
- 5.1.3 ログの出力
- 5.1.4 チェックコード
- 5.1.5 デバッグレベル
- 5.2 エラー処理
- 5.2.1 エラー処理は関数の末尾にまとめる
- 5.2.2 関数は処理の成功/失敗を戻り値にして返す
- 5.3 関数ラッパ
- 5.3.1 簡単な関数ラッパの実装
- 5.3.2 動的ライブラリによる関数ラッパの実装
6 開発の例
- 6.1 プログラムを書く目的
- 6.2 仕様書の作成
- 6.2.1 機能設計
- 6.2.2 機能仕様書の作成
- 6.2.3 レビュー
- 6.3 コーディング
- 6.3.1 詳細設計
- 6.3.2 コーディング
- 6.3.3 レビュー
- 6.4 テスト
- 6.4.1 テスト仕様書の作成
- 6.4.2 テスト項目
- 6.5 全体テスト,リリース,保守,完了
この本に関連する書籍
-
稼げるJAVA 今より楽するコーディング
Javaの入門書(文法書)を卒業したならば,あとは,実践でプログラムをドンドン作成するしかありません。しかし,なぜかうまく作れず,また入門書に戻って,「おかしいな...
-
あなたはコンピュータを理解していますか?
根っこの部分をきっちり理解することにこそ,コンピュータ全体を見渡せるようになるための重要な鍵が潜んでいます。「情報」の実体とは?メモリはなぜ安くなる?プログ...
-
C言語 ポインタが理解できない理由
「C言語はポインタがあるから難しい」と言われます。しかしポインタはそれほど難しいものではありません。ポインタを理解するにはちょっとしたコツが必要です。本書は,...