15 Excellent Free Books to Learn C

C言語は、汎用的、手続き的、移植可能な高レベルのプログラミング言語であり、最も人気があり影響力のある言語の1つである。 簡単なコンパイラでコンパイルでき、メモリへの低レベルのアクセスを提供し、機械命令に効率的にマッピングする言語構造を提供し、最小限のランタイムサポートを必要とするように設計されています。 多くのプログラミング言語が C 言語に多大な恩義を感じており、プログラミング界の共通言語のような存在になっています。

C言語は理解するのがかなり簡単で、プログラマーは明確で簡単で論理的な方法でプログラムを編成することができる。 非常に柔軟で実用的、かつコンパクトな言語であり、読みやすい構文も兼ね備えている。 C言語で書かれたコードは、コンピュータの低レベルの設備に簡単にアクセスでき、高速に実行される。 コンパイラ指令により、異なるアーキテクチャ用にコンパイルされたプログラムの単一バージョンを作成することが可能です。

C言語は自由を意味します。

C言語は自由を意味します。したがって、自由を体現する本でC言語を学ぶことは理にかなっています。

1. The C Book by Mike Banahan, Declan Brady and Mark Doran

The C Book

The C Book

The C Book はすでに最新の高レベル手続き型プログラミング言語を使ってある程度の経験があるプログラマ向けに設計されています。

文、変数、条件実行、配列、手続き(またはサブルーチン)などをすでに理解しているはずです。

この本は、C言語特有の事柄に集中しています。

本書は、C言語特有のものに焦点を当てており、特にC言語の使われ方に焦点が当てられている。

各章の内容:

  • C言語入門
  • 変数と算術 – キーワードと識別子、変数の宣言、実数型、整数型、式と算術、定数など、C言語の基礎的な部分を紹介
  • Control of Flowと論理式 – これまで紹介してこなかった文も含め、CプログラムにおいてControl of Flow文がどのように使用されるか様々な方法を見ている。 流れの制御、より多くの論理式、奇妙な演算子
  • 関数 – 関数の種類、再帰と引数渡し、リンク
  • 配列とポインタ – 配列、ポインタ、文字の処理、sizeofとストレージ割り当て、関数へのポインタ、ポインタに関わる式、配列を紹介します。 & 演算子と関数宣言
  • 構造化データ型 – 構造体、共用体、ビットフィールド、列挙型、修飾子と派生型、初期化
  • プリプロセッサ – プリプロセッサの動作方法、ディレクティブ
  • C の専門分野 – 宣言、定義、アクセス性、型定義、型付き、型付け。 const と volatile、シーケンスポイント
  • ライブラリ – 診断、文字処理、ローカライズ、リミット、数学関数、非ローカルジャンプ、信号処理、可変数の引数、入出力、書式付き I/O 、文字 I/O 、非書式付き I/O 、ランダムアクセス関数、一般ユーティリティ、文字列処理
  • 。 そして日付と時間

  • C による完全なプログラム – すべてをまとめる、main への引数、プログラムの引数の解釈、パターンマッチングプログラム、そしてより野心的な例

著者は、著者とその著作権への謝辞がある限り、読者が本で何をしたいかを許可してくれます。 Mike Banahan が確認したところでは、この本は事実上 Creative Commons License の下にあります。

この本を読む

2. C Elements of Style by Steve Oualline

C Elements of Style

C Elements of StyleC Elements of Style は優れたプログラミングスタイルの原理をカバーし、 C や C++ プログラマに読みやすく、理解でき、他の人が保守できるコードをどう書くか教えている便利なガイドブックです。 学生であれプロのプログラマーであれ、エレガントで信頼性の高いコードを構築するための多くのヒントやテクニックから恩恵を受けることができます。

この本は、読者に優れたプログラミングスタイルをコードに組み込む方法を示そうとしています。

最終的な目標は、よく設計され、よく書かれたコードを構築することです。それは、コンピュータを有効に利用するだけでなく、人間が理解できるように慎重に組み立てられたコメントも含んでいます。

内部では、コメントの書き方、プログラムの見出し、変数名の決定、ステートメントのフォーマット、ステートメントの詳細、プリプロセッサの書き方、ディレクトリの整理、および makefile の作成に関するガイドラインが記載されています。

本書は Creative Commons License の下で出版されています。 An Introduction to GCC by Brian Gough

An Introduction to GCC

An Introduction to GCCGCC 入門は GNU Compiler Collection (GCC) に含まれる、 GCC および g++ という GNU C/C++ コンパイラを紹介するものです。

本書を読めば、プログラムのコンパイル方法、最適化のための基本的なコンパイラオプションの使い方、デバッグの方法がわかるでしょう。

本書では、コンパイラ自体の使い方も説明されています。 メーリングリストに投稿された質問の長年の観察に基づき、読者を GCC の重要なオプションにまっすぐ導きます。

章立て:

  • はじめに
  • Cプログラムのコンパイル – gccを使用してCプログラムをコンパイルする方法を説明します。 プログラムは単一のソースファイルから、あるいは複数のソースファイルからコンパイルすることができ、 システムライブラリやヘッダーファイルを使用することができます
  • コンパイルオプション – GCC で利用できる他のよく使われるコンパイラオプションについて説明します。 これらのオプションは、ライブラリやインクルードファイルを見つけるために使用される検索パス、追加の警告と診断の使用、プリプロセッサマクロと C 言語方言などの機能を制御します
  • Using the preprocessor – GNU C プリプロセッサ cpp の使用について説明しており、GCC パッケージに含まれるものです。 プリプロセッサは、コンパイルされる前にソースファイル中のマクロを展開します。 GCC が C または C++ プログラムを処理するときはいつでも自動的に呼び出されます
  • デバッグのためのコンパイル – オブジェクトファイルと実行ファイルに追加のデバッグ情報を格納するための -g debug オプションを提供します。 このデバッグ情報により、エラーが特定のマシン命令から元のソースファイル内の対応する行まで遡れるようになります
  • 最適化でコンパイルする – GCC は最適化コンパイラーです。 生成する実行ファイルの速度を向上させたり、サイズを小さくしたりすることを目的とした幅広いオプションを提供します
  • C++ プログラムのコンパイル – C++ で書かれたプログラムをコンパイルするために GCC を使用する方法、およびその言語に固有のコマンドライン オプションについて説明します
  • プラットフォーム固有のオプション – 共通プラットフォーム向けに利用できるオプションのいくつかについで説明します。 Intel と AMD x86 オプション、x86 拡張、x86 64 ビットプロセッサ、DEC Alpha オプション、SPARC オプション、POWER/PowerPC オプション、マルチアーキテクチャのサポート、浮動小数点問題
  • トラブルシューティング – GCC はコンパイル時の問題のトラブルシューティングを支援するいくつかのヘルプと診断オプションがあります
  • Compiler-related tools – GCC と一緒に使うと便利ないくつかのツールについて記述してあります。 これらには、ライブラリを作成するための GNU archiver ar、そして、GNU プロファイリングとカバレッジテストプログラム、gprof と gcov があります
  • コンパイラの動作方法 – GCC がソースファイルを実行可能ファイルに変換する方法をより詳細に記述しています。 コンパイルは GNU コンパイラ自身 (gcc もしくは g++ フロントエンドを通して)、GNU アセンブラ as、そして GNU リンカ ld を含むいくつかのツールを含む多段階のプロセスです。 コンパイルプロセスで使用されるツールの完全なセットは、ツールチェーンと呼ばれます
  • コンパイル済みファイルの検査 – 実行可能ファイルおよびオブジェクトファイルの内容を検査するためのいくつかの便利なツールについて説明しています
  • 共通のエラーメッセージ – gcc および g++ が生成する最も頻繁なエラーおよび警告メッセージについて説明します。 それぞれのケースには、原因の説明、例、可能な解決策の提案が添えられています
  • 助けを求める – 読者がこの紹介でカバーされていない問題に遭遇した場合、 GCC と言語関連のトピックについてより詳細に説明した参考マニュアルがいくつかあります

本書は GNU Free Documentation License で発行されています

本を読む

次ページへどうぞ。 2ページ目 – C言語入門 & GUIとその他の書籍

この記事のページです。
Page 1 – The C Book and more books
Page 2 – An Introduction to C & GUI Programming and more books
Page 3 – The GNU C Reference Manual and more books
Page 4 – Essential C and more books
Page 5 – Beej’s Guide to Network Programming and more books

このシリーズすべての書籍が含まれています。

Free Programming Books
Java General-purpose, concurrent, class-based, object-oriented, high-level language
C General-purpose, procedural, portable, high-level language
Python General-purpose, structured, powerful language
C++ General-purpose, portable, free-form, multi-paradigm language
C# Combines the power and flexibility of C++ with the simplicity of Visual Basic
JavaScript Interpreted, prototype-based, scripting language
PHP PHP has been at the helm of the web for many years
HTML HyperText Markup Language
SQL Access and manipulate data held in a relational database management system
Ruby General purpose, scripting, structured, flexible, fully object-oriented language
Assembly As close to writing machine code without writing in pure hexadecimal
Swift Powerful and intuitive general-purpose programming language
Groovy Powerful, optionally typed and dynamic language
Go Compiled, statically typed programming language
Pascal Imperative and procedural language designed in the late 1960s
Perl High-level, general-purpose, interpreted, scripting, dynamic language
R De facto standard among statisticians and data analysts
COBOL Common Business-Oriented Language
Scala Modern, object-functional, multi-paradigm, Java-based language
Fortran The first high-level language, using the first compiler
Scratch Visual programming language designed for 8-16 year-old children
Lua Designed as an embeddable scripting language
Logo Dialect of Lisp that features interactivity, modularity, extensibility
Rust Ideal for systems, embedded, and other performance critical code
Lisp Unique features – excellent to study programming constructs
Ada ALGOL-like programming language, extended from Pascal and other languages
Haskell Standardized, general-purpose, polymorphically, statically typed language
Scheme A general-purpose, functional language descended from Lisp and Algol
Prolog A general purpose, declarative, logic programming language
Forth Imperative stack-based programming language
Clojure Dialect of the Lisp programming language
Julia High-level, high-performance language for technical computing
Awk Versatile language designed for pattern scanning and processing language
CoffeeScript Transcompiles into JavaScript inspired by Ruby, Python and Haskell
BASIC Beginner’s All-purpose Symbolic Instruction Code
Erlang General-purpose, concurrent, declarative, functional language
VimL Powerful scripting language of the Vim editor
OCaml The main implementation of the Caml language
ECMAScript Best known as the language embedded in web browsers
Bash Shell and command language; popular both as a shell and a scripting language
LaTeX Professional document preparation system and document markup language
TeX Markup and programming language – create professional quality typeset text
Arduino Inexpensive, flexible, open source microcontroller platform
TypeScript Strict syntactical superset of JavaScript adding optional static typing
Elixir Relatively new functional language running on the Erlang virtual machine
F# Uses functional, imperative, and object-oriented programming methods
Tcl Dynamic language based on concepts of Lisp, C, and Unix shells
Factor Dynamic stack-based programming language
Eiffel Object-oriented language designed by Bertrand Meyer
Agda Dependently typed functional language based on intuitionistic Type Theory
Icon Wide variety of features for processing and presenting symbolic data
XML Rules for defining semantic tags describing structure ad meaning
Vala Object-oriented language, syntactically similar to C#
Standard ML General-purpose functional language characterized as “Lisp with types”
D General-purpose systems programming language with a C-like syntax
Dart Client-optimized language for fast apps on multiple platforms
Markdown Plain text formatting syntax designed to be easy-to-read and easy-to-write
Kotlin More modern version of Java
Objective-C Object-oriented language that adds Smalltalk-style messaging to C
PureScript Small strongly, statically typed language compiling to JavaScript
ClojureScript Compiler for Clojure that targets JavaScript
VHDL Hardware description language used in electronic design automation

コメントを残す

メールアドレスが公開されることはありません。