新・明解 C 言語 実践編 第 2 版
シンメイカイシーゲンゴ ジッセンヘン ダイニハン
- 著者:
- 柴田 望洋(シバタ ボウヨウ)
- 注目:
- 総合 1395 位
- 出版社:
- SB クリエイティブ
- 出版日:
- 2023年03月02日
- ISBN:
- 9784815617820
- シリーズ:
- 新・明解シリーズ
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
【シリーズ累計 120 万部突破!】
本書は、C 言語の基礎を理解したあとに、次のステップを目指しているみなさんのためのテキストです。
C プログラミングの学習や開発の現場で起きた失敗談、問題点、疑問点を取り上げ、その解決法をわかりやすく解説します。
本書では、見えないエラー / 見えにくいエラー / 見落としやすいエラーから始まって、次のようなことがらを学習していきます。
・型変換にまつわる落とし穴の回避方法
・ライブラリ開発のための基本テクニック
・コンソール画面の文字色やカーソル位置などを制御するライブラリの開発
・呼び出す関数をコンパイル時ではなく実行時に決定する手法
・要素型に依存することなく処理を行うプログラム作成のテクニック
・あらゆる要素型の配列の探索やソートなどを行う汎用ユーティリティライブラリの開発
・処理系の特性を提供するヘッダライブラリを自動生成するプログラムの開発
・動的に生成したポインタの配列を多次元配列として扱う技術
・整数型の内部表現を文字列化するライブラリの開発
・文字列の複製や置換などを行う文字列処理ライブラリの開発
・データやキーの型に依存しない汎用の 2 分探索木ライブラリの開発
・テキストファイルとバイナリファイルの取扱い上の注意点
また標準 C の第 2 版 (C99) から第 5 版 (C23) までの変更点などについても、必要に応じて学習を進めます。
本書を通じて、実用プログラム開発技術を身につけることができます。
第 1 章 見えないエラー
第 2 章 型と処理系特性
第 3 章 ライブラリの開発
第 4 章 動的なアクセスと生成
第 5 章 文字列を使いこなす
第 6 章 構造体と共用体
第 7 章 汎用ライブラリの開発
第 8 章 ファイルの活用
第 9 章 汎用 2 分探索木ライブラリ
技書の森解説
C 言語の文法をひと通り理解した人が、開発の現場で起きる失敗や疑問を手がかりに、実用的なプログラムやライブラリを作る力を磨くためのテキストです。『新・明解 C 言語 実践編 第 2 版』 (柴田望洋 著、SB クリエイティブ、2023 年 3 月 1 日発売) は、版元の紹介によると、C プログラミングの学習や開発の現場で起きた失敗談、問題点、疑問点を取り上げ、その解決法を解説する本です。刊行時の著者紹介によると、著者は工学博士で、2000 年には分かりやすい C 言語の教科書と参考書の執筆の業績により、日本工学教育協会から著作賞を受けています。
全 9 章の構成、見えないエラーから汎用の 2 分探索木まで
目次は第 1 章「見えないエラー」に始まり、第 2 章「型と処理系特性」、第 3 章「ライブラリの開発」、第 4 章「動的なアクセスと生成」、第 5 章「文字列を使いこなす」、第 6 章「構造体と共用体」、第 7 章「汎用ライブラリの開発」、第 8 章「ファイルの活用」と続き、第 9 章「汎用 2 分探索木ライブラリ」で締めくくられます。版元が挙げる学習項目には、型変換にまつわる落とし穴の回避、コンソール画面の文字色やカーソル位置を制御するライブラリの開発、呼び出す関数をコンパイル時ではなく実行時に決める手法、処理系の特性を提供するヘッダライブラリを自動生成するプログラム、動的に生成したポインターの配列を多次元配列として扱う技術、整数型の内部表現を文字列化するライブラリ、文字列の複製や置換を行う文字列処理ライブラリ、テキストファイルとバイナリファイルの取扱いの注意点などが並びます。本書は、標準 C の第 2 版 (C99) から第 5 版 (C23) までの変更点などにも必要に応じて触れると版元は説明しています。
型変換と処理系依存、動的メモリという C の難所
C は型の暗黙の変換を多く許し、整数型の大きさや char が符号付きかどうかといった細部を処理系に委ねています。そのため、コンパイルが通っても意図と違う結果を返すコードが書けてしまいます。符号付きと符号なしの整数の比較や、演算の途中での桁あふれは典型的な見落としです。C 言語 がこうした仕様を持つのは、ハードウェアに近い効率を優先し、多様な計算機で動かすことを前提に設計されてきたためです。もう 1 つの難所が動的メモリです。malloc で確保した領域は解放まで書き手が管理する必要があり、ポインターの配列を動的に作って多次元配列のように扱う場合は、確保と解放の対応や要素の並び方を自分で把握しなければなりません。プログラムの メモリレイアウト では、関数の呼び出しで使うスタックと、malloc で確保するヒープが別の領域にあります。
型に依存しない汎用ライブラリを C で組む考え方
C には C++ のテンプレートや Java のジェネリクスに当たる仕組みがありません。要素型に依存しない処理は、void へのポインターと要素の大きさ、比較関数へのポインターを受け取る形で組み立てるのが定石で、標準ライブラリの qsort や bsearch がこの形をとっています。関数へのポインターを使えば、呼び出す関数を実行時に切り替えることもできます。親子関係を持つノードを階層的につなぐ 木構造 は、ノードを動的に確保してポインターでつなぎ、不要になれば解放するという C の実践的な要素がまとめて現れる題材です。版元が挙げる、あらゆる要素型の配列の探索やソートを行う汎用ユーティリティライブラリや、データやキーの型に依存しない汎用の 2 分探索木ライブラリの開発は、こうした技法を実際の部品に落とし込む学習項目です。
版元が想定する読者と、見開きの紙面と広開本の製本
版元が想定する読者は、C 言語の基礎を理解したあとに次のステップを目指している人です。紙面は著者が自らデザインしており、すべての解説が見開きに収まるようにまとめられています。開きやすく閉じにくい広開本の製本で、本を開いたままキーボードで入力しやすい点も版元は挙げています。
この本に興味がある方におすすめ
関連する本
柴田 望洋 の他の書籍
関連記事
エラーが出たときこそ本の出番
プログラミング中にエラーが出ると焦りますが、そんなときこそ本が役に立ちます。エラーと本の付き合い方を、初心者向けにやさしく解説します。
スタックオーバーフローのコピペを卒業する日
Stack Overflow からコードをコピペして動かす段階から、自分で設計して書ける段階へ。この成長の壁を越えるために技術書が果たす役割を解説します。
エラーメッセージを読めるエンジニアは何が違うのか
エラーが出たときに冷静に原因を特定できる人と、パニックになる人。その差は経験だけでなく、読んできた本の種類にあります。デバッグ力を支える読書の傾向を分析します。