こんにちは。ひょんなことから、最近ファイナルファンタジーIVを懐かしんでいる、スッキリわかるC言語入門 著者の中山です。
今回は、本日発売の『スッキリわかるC言語入門 第3版』について、改良点をまとめてお届けします。春からの講義や研修などでご利用のみなさまのお役に立てましたら幸いです。
第2版 → 第3版の改訂ポイント
C言語自体は比較的成熟しているため、入門書の改訂サイクルも長いことが多いのですが、実はスッキリCについては 2018 ⇒ 2021 ⇒ 2024とコンスタントに改訂を続けている珍しい入門書です。技術だけではなく、学習者の方の好まれる学習スタイルや多い思考のパターンなどに沿うよう、最適化を続けています。
そんななかリリースの今回の第3版は、技術的・出版的の両面で大きな変更がある、メジャー改訂版にあたります。
技術的な改訂点① 最新国際規格「C23」への対応
2024年10月31日に正式発行された国際規格 ISO/IEC 9899:2024 (通称:C23)のうち、特に入門者の学習の敷居を下げる有効な新仕様を積極的に取り込みました。特に大きなものは、以下の3つです。
- #include<stdbool.h> を省略: C23では標準でbool, true, falseを利用可能となったため、includeを省略しています。
- NULL を nullptr に変更: C23ではC++に準ずる真のNULLポインタとして、nullptrが導入されたため、これを利用しています。
- 配列で = {} 初期化を利用: C23では正式に可能になった、入門者の直感に準じる空の配列初期化構文を利用しています。
その他、2進リテラルやauto、属性、typeofなども簡単に紹介していますが、はじめての入門者が頻用する可能性は限定的と想定して、紹介程度とさせていただきました。その他、細かい修正や解説の補足を拡充しています。
スッキリCでは、2018年の初版発売当時から、「入門者の理解促進効果」や「C++をはじめとする別言語への発展可能性」のために、bool型の利用を積極的に取り込んだ解説としておりましたが、晴れてC言語の正式仕様に取り込まれたことで、より学びやすい言語になったかと思います。
ご注意
書籍掲載コードはC23ベースとなっているため、2024/11/19現在のGCC/clangなどでコンパイルする場合には、「-std:c23」オプションの指定が必要です(dokoCではデフォルトで適用されているので意識不要です)。
GCCでは、2025年初頭にも-std:c23をデフォルトにする検討がなされていますが、それまでの場合、企業研修や学校の授業でGCCを利用する際には、① GCC最新版(14系)を導入する ② -std:c23 をコンパイルの時に毎回指定させるか、エイリアス等で自動指定するように設定する といった対応が必要である点にご注意くださいませ。
(書籍にも、「動作しない場合は、先頭に#include<stdbool.h>と記載すること」「動作しない場合は、NULLと書き換えること」等の補足はいれてありますので、口頭で読み替えを指示いただくことである程度の回避も可能です。)
出版的な改訂点: 表紙/紙面デザインの現代化
現代の読み手の方向けに、2024年に先行改訂されている「スッキリJava」や「スッキリSQL」同様の新しい紙面デザインとなりました。
- 紙面の基本カラーが 赤系から緑系へ
- 明朝体の本文がゴシック体へ
- 章末練習問題の解答が巻末にまとめられるとともに、QRコードからも参照可能に
相変わらずの厚みではあるものの、より明るい気持ちでページをめくっていただけることを著者としては期待しております。
出版的な改訂点: 「基本情報技術者試験」対策コラムの追加
2023年の制度改定により科目B(旧:午後試験)で必須となった「擬似言語」については、特にプログラミング未経験者の方には敷居が高いといわれます。実際にコーディングを体験することが対策の近道ではありますが、あいにく擬似言語はその名の通り「動かせない」言語です。
歴史的経緯もあり、擬似言語はC言語に比較的似ていると言われています(ただし、ポインタは一切登場しません)。しかし、一般的なC言語入門書の場合、冒頭からポインタが解説の随所(例:scanfの引数)に顔を出し、「科目Bの対策のために、普通の入門書でC言語を学ぶのは効率が悪い」という事情がありました。
幸い、スッキリCは「前半戦(第8章まで)の間、ポインタの存在と臭いを完全に隠して解説が進む」珍しい構成のC言語入門書であるため、前半部分だけを学ぶことで「基本情報科目B対策のため、プログラミング基礎学習にフィットする体験」ができることを某読者の方に教えていただいたことをきっかけに、今回6つの「スッキリCを用いた科目B学習&攻略法」のコラムを追加しました。
いわゆる本格的な試験対策には、資格対策の専門書が必要ですが、まず「トレースできない」「トレースに時間がかかる」「複雑な内容になるとすぐにわけがわからなくなる」という方が、「プログラミング脳」を形成する体験をいただくには、きっとお役に立てると思います。
その他、文章としてのこまかなリファクタリングなどは幅広く行っていますが、抜本的に解説の流れが変化してしまうような後方互換性がない変更はほとんどないと考えて頂いて構いません。
その他の改訂点: VSCode+gcc14を使える新dockerコンテナ
ブラウザだけですぐに利用できるdokoCは、2021年の「第2版」に引き続き好評提供中です。
一方、ローカル環境で開発するためのdockerコンテナについては、初版・第2版での「nano + gccをCLIで直接叩く」形態から進化し、今回、dockerコンテナをスタートしたらブラウザでlocalhostにアクセスし「VSCode on ブラウザ」で開発を行っていただけるようになりました。
コンテナにはgccは14系を入れてありますが、-std:c23が自動適用されるようになっているため、手軽に開発をしていただけます。
その他
その他、表現の揺らぎや解説アプローチの改訂などを多数ふんだんの盛り込んでおります。
引き続き、読者の皆様、指導者の皆様のお役に立てるよう改良を続けて参りますので、どうぞよろしくお願い致します。