C言語 入門書の次に読む本

[表紙]C言語 入門書の次に読む本

A5判/400ページ

定価(本体2,480円+税)

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 全体テスト,リリース,保守,完了

著者プロフィール

坂井弘亮(さかいひろあき)

1997年 東京理科大学工学部電気工学科卒業/1999年 同大学院工学研究科電気工学専攻修士課程修了/1999~ 株式会社PFU勤務.ネットワーク製品のハードウエア・ソフトウエア開発に従事。

現在,富士通株式会社に勤務.ネットワーク製品の開発業務に携わるかたわら,PC-UNIXハッキング,雑誌記事の執筆,FPGA設計,独自OSの作成(ホームページ上で公開中)などで活動中.著書「C言語 入門書の次に読む本」 (技術評論社)。論理言語,組み込みシステム,FPGA,組み込みOS等に興味がある。