C言語は1972年にAT&Tベル研究所で開発されたプログラミング言語です。
「そんな古臭い言語、今時使うの?」と思う人もいるかもしれませんが、
- 高級アセンブリと呼ばれるハードウェアとの親和性
- メモリ管理などにおける自由度
- 処理速度の速さ
など利点も多くあり、今日では主に組込み系・機械制御系の分野で多く使用されています。
今回は、C言語を学習するのにおすすめの書籍を5つ紹介します。
- 【初級者向け】はじめてのC
- 【初級者向け】独習C
- 【初級~中級者向け】C言語 入門書の次に読む本
- 【中級者向け】C言語によるオブジェクト指向プログラミング入門
- 【中級者向け】効率の良い組込みC言語プログラミング
【初級者向け】はじめてのC
C言語の入門書としては定番中の定番といっても良いのが本書です。僕も昔大学の講義でこの本使ってた覚えがあります。
変数や条件分岐といった基礎的な内容から低水準の入出力関数まで網羅していて、この本一冊でC言語の初級部分はあらかた学習することができます。図解が多いのも初心者にはわかりやすくて良いですね。
タイトル名が恥ずかしくて書店で買いづらいことを除けば、文句無しの良書。
【初級者向け】独習C
こちらも有名です。その名の通り、C言語を独学で学ぶための本。
- 解説
- 例題
- 練習問題
の3ステップでチュートリアル式に進めていけるので理解しやすい構成となっています。
【初級~中級者向け】C言語 入門書の次に読む本
入門書で基本的な文法をマスターした人向けの、脱初級者本です。
よく言われることですが、
「文法だけマスター」
↓
「実際に動くものを作る」
の間には壁があり、ここで脱落してしまう人も多いです。
本書では、初級者の人が詰まりがちな、
- ヘッダファイルの作り方
- ライブラリの作り方
- アルゴリズムやデータ構造の設計
- バグ発生時の対処法
- デバッグ用コード、エラー処理の書き方
といった実践的な内容が解説されています。
【中級者向け】C言語によるオブジェクト指向プログラミング入門
大規模なシステムを複数人で開発するとなると、オブジェクト指向プログラミングが必要な場面も出てきます。
C言語はオブジェクト指向プログラミングに適した言語とは言い難いですが、オブジェクト指向はシステム開発における考え方の1つなので、そのための機能が言語になくても実現することは可能です。
本書は、C言語を使ってオブジェクト指向開発を行う手法について解説されています。
【中級者向け】効率の良い組込みC言語プログラミング
前述したように、現代ではC言語の主戦場は組込み系開発*1です。
組込み系のソフトウェアは比較的シンプルなものが多いですが、組込み系開発独特の技術や知識、慣習が必要になってきます。
ハードウェアのリソース(CPUやメモリなど)が限られていることも多いため、いかにしてリソースを節約したプログラムを書くか、そこがミソになってきます。
本書では「限定されたハードウェア資源で動作するソフトウェア開発」というテーマについて書かれています。
*1:自動車や家電などに組み込んでハードウェアを制御するソフトを開発すること