概要
現場の最前線で開発をしている著者が,C言語の基本から応用までを豊富なサンプルとともに丁寧に解説。入門書では軽視されがちなプリプロセッサ,ライブラリなどや,つまづきやすい「ポインタと配列」も手厚くカバー。ネットワークプログラミングやオープンソースの読み方など,長年の経験に裏打ちされた知識を伝授します。gccの利用を想定し,大規模開発にも対応できるMakeを使った実行方法をとっているので,実践的な力が身につきます。
こんな方におすすめ
- 研修や入門書で輪郭はなぞったものの,手が動かないC言語プログラマ
- なんらかのプログラミング言語は使ったことがあるがC言語は未経験のプログラマ
目次
Chapter 1 イントロダクション
- 1-1 C言語とは
- 1-2 C言語につまづかないこつ
- 1-3 開発者ツールを準備する
- 1-4 C言語の開発者ツールの役割
- 1-5 はじめる前に押さえておきたい基本的事項
Chapter 2 データを識別して保持する
- 2-1 データ型の基本
- 2-2 データ型を指定して変数を宣言する
- 2-3 文字と文字列
- 2-4 記憶クラス
- 2-5 キャスト
Chapter 3 データを加工して評価する
- 3-1 式と演算子
- 3-2 条件式
- 3-3 単項演算子と三項演算子
- 3-4 少し変わった演算子
Chapter 4 プログラムの流れを記述する
- 4-1 制御構造とは
- 4-2 逐次実行する
- 4-3 条件ごとに分岐する
- 4-4 処理を繰り返す
- 4-5 複数の条件を振り分ける
- 4-6 任意の場所にジャンプする
Chapter 5 プログラムを機能でまとめる
- 5-1 関数の基本
- 5-2 文字列を表示する
- 5-3 文字列を入力する
- 5-4 時間を取得する
- 5-5 乱数を使用する
- 5-6 標準関数が使えないケース
Chapter 6 さまざまな前処理を行う
- 6-1 ファイルの内容で置き換える
- 6-2 1対1で置き換える
- 6-3 defineしたものを無効にする
- 6-4 条件でコンパイルする
- 6-5 関数のようなマクロ関数
Chapter 7 データをまとめて場所を指し示す
- 7-1 配列とは
- 7-2 ポインタとは
- 7-3 ポインタ変数を関数でやりとりする
- 7-4 ポインタとキャスト
- 7-5 ダブルポインタ,トリプルポインタ
- 7-6 特別なポインタ
Chapter 8 異なるデータ型をまとめる
- 8-1 変数をまとめた構造体
- 8-2 同じメモリ領域を共用する共用体
- 8-3 ビット長を指定したフィールドに分けるビットフィールド
- 8-4 値やデータ型に名前を付ける
Chapter 9 文字列を操作し使いこなす
- 9-1 文字列を操作する関数
- 9-2 文字列をコピーする
- 9-3 文字列の長さを求める
- 9-4 文字列を連結する
- 9-5 文字列を比較する
- 9-6 文字列を検索する
- 9-6 文字列を切り出す
- 9-7 文字関数
- 9-8 複雑な文字列操作をかんたんにする
Chapter 10 動的メモリでデータの置く場所を自ら作る
- 10-1 動的メモリとは
- 10-2 メモリを確保する
- 10-3 メモリを解放する
- 10-4 メモリのサイズを変更する
- 10-5 確保したメモリを使う
- 10-6 メモリ領域を操作する標準関数
- 10-7 リスト構造
Chapter 11 データを保存して読み出す
- 11-1 ファイル入出力の基本
- 11-2 標準ファイル関数
- 11-3 ファイルの読み書きの例
- 11-4 その他の標準ファイル関数
Chapter 12 避けて通れない応用
- 12-1 C言語のお作法
- 12-2 OSの機能を呼び出すシステムコール
- 12-3 オープンソースを読んでみよう
Appendix
- Appendix 1 優先順位表
- Appendix 2 コンパイラオプション一覧
- Appendix 3 Makefileの書き方
サポート
ダウンロード
(2018年3月19日更新)
本書で使用している全プロジェクトファイルをダウンロードできます。
データは,ZIP形式の圧縮ファイルです。圧縮ファイルをダウンロードしていただき,適宜解凍してご利用ください。
プロジェクトファイルは,著作権法上の保護を受けています。収録されているファイルの一部,あるいは全部について,いかなる方法においても無断で複写,複製,再配布することは禁じられています。
以上のことをご確認,ご了承の上,データをご利用願います。
- ダウンロード
- サンプルファイル
正誤表
本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。
(2018年7月30日最終更新)
P.91
P.272 func_5.c
誤 |
if (sum(&num_1, &num_2, &answer) != 0) {
|
正 |
if (sum(&num_1, &num_2, answer) != 0) {
|
(以下2018年3月16日更新)
P.60 表2-2
誤 |

|
正 |

|
画像をクリックすると大きく表示できます。
(2018年3月13日更新)
P.55 図2-2
誤 |

|
正 |

|
画像をクリックすると大きく表示できます。