15 vynikajících bezplatných knih k výuce jazyka C

C je univerzální, procedurální, přenosný, vysokoúrovňový programovací jazyk, který je jedním z nejoblíbenějších a nejvlivnějších jazyků. Byl navržen tak, aby jej bylo možné kompilovat pomocí jednoduchého kompilátoru, aby poskytoval nízkoúrovňový přístup do paměti, aby poskytoval jazykové konstrukce, které se efektivně mapují na strojové instrukce, a aby vyžadoval minimální podporu při běhu. Mnoho programovacích jazyků má značný dluh vůči jazyku C. Stal se jakousi lingua franca ve světě programování.

C je poměrně jednoduchý na pochopení. Umožňuje programátorovi uspořádat programy přehledným, jednoduchým a logickým způsobem. Je to velmi flexibilní, praktický a kompaktní jazyk v kombinaci se snadno čitelnou syntaxí. Kód napsaný v jazyce C běží rychle a má snadný přístup k nízkoúrovňovým prostředkům počítače. Kompilátorové směrnice umožňují vytvořit jedinou verzi programu zkompilovanou pro různé architektury.

C je o svobodě. Proto má smysl učit se C s knihami, které také ztělesňují svobodu. Podívejte se na můj výběr a zjistěte, jestli vás některá z nich zaujme.

1. Kniha C od Mika Banahana, Declana Bradyho a Marka Dorana

Kniha C

Kniha C

Kniha C je určena programátorům, kteří již mají nějaké zkušenosti s používáním moderního vysokoúrovňového procedurálního programovacího jazyka.

Měli byste již rozumět příkazům, proměnným, podmíněnému provádění, polím, procedurám (neboli podprogramům) a podobně.

Kniha se soustředí na věci, které jsou pro jazyk C speciální. Zejména se zaměřuje na způsob, jakým se jazyk C používá. Kniha je poučná a dobře se čte.

Kapitoly obsahují:

  • Úvod do jazyka C
  • Proměnné a aritmetika – seznamuje s některými základy jazyka C, včetně klíčových slov a identifikátorů, deklarace proměnných, reálných typů, integrálních typů, výrazů a aritmetiky a konstant
  • Řízení toku a logické výrazy – zabývá se různými způsoby, jakými lze v programu jazyka C použít příkazy pro řízení toku, včetně některých příkazů, které dosud nebyly představeny. Řízení toku, další logické výrazy a podivné operátory
  • Funkce – typy funkcí, rekurze a předávání argumentů a propojení
  • Pole a ukazatele – pole, ukazatele, práce se znaky, sizeof a alokace paměti, ukazatele na funkce, výrazy zahrnující ukazatele, pole, & operátor a deklarace funkcí
  • Strukturované datové typy – struktury, uniony, bitová pole, enumy, kvalifikátory a odvozené typy a inicializace
  • Preprocesor – jak funguje preprocesor a direktivy
  • Specializované oblasti jazyka C – deklarace, definice a přístupnost, typedef, const a volatile a sekvenční body
  • Knihovny – diagnostika, práce se znaky, lokalizace, limity, matematické funkce, nelokální skoky, práce se signály, proměnný počet argumentů, vstup a výstup, formátovaný vstup/výstup, znakový vstup/výstup, neformátovaný vstup/výstup, funkce náhodného přístupu, obecné utility, práce s řetězci, a datum a čas
  • Kompletní programy v jazyce C – skládání všeho dohromady, argumenty pro main, interpretace argumentů programu, program pro porovnávání vzorů a náročnější příklad

Autoři dávají čtenáři svolení, aby si s knihou dělal, co chce, za předpokladu, že v ní budou uvedeni autoři a jejich autorská práva. Z toho, co nám potvrdil Mike Banahan, vyplývá, že kniha fakticky podléhá licenci Creative Commons.

Přečtěte si knihu

2. C Elements of Style by Steve Oualline

C Elements of Style

C Elements of Style

C Elements of Style je užitečná příručka, která se zabývá zásadami správného programovacího stylu a učí programátory v jazycích C a C++, jak psát kód, který budou ostatní snadno číst, chápat a udržovat. Ať už jste student nebo profesionální programátor, bude pro vás přínosem mnoho tipů a technik pro sestavení elegantního a spolehlivého kódu.

Kniha se snaží čtenářům ukázat, jak do svého kódu zabudovat dobrý programovací styl. Vzhledem k tomu, že počítač čte pouze kód a člověk se soustředí na komentáře, týká se dobrý programátorský styl obou částí programu.

Konečným cílem je vytvořit dobře navržený, dobře napsaný kód, který nejen efektivně využije počítač a který také obsahuje pečlivě sestavené komentáře, které pomohou člověku porozumět. Tento stav usnadní ladění, údržbu a vylepšování, což v konečném důsledku zlepší čitelnost, přenositelnost, spolehlivost a udržovatelnost vašeho kódu.

Uvnitř najdete návody na psaní komentářů, záhlaví programu, určování názvů proměnných, formátování příkazů, detaily příkazů, psaní preprocesoru, uspořádání adresářů a vytváření souboru makefile.

Tato kniha je vydána pod licencí Creative Commons.

Přečtěte si knihu

3. Knížka je určena pro čtenáře, kteří se chtějí dozvědět více. Úvod do GCC by Brian Gough

Úvod do GCC

Úvod do GCC

Úvod do GCC poskytuje úvod do překladačů GNU C a C++, gcc a g++, které jsou součástí GNU Compiler Collection (GCC).

Po přečtení této knihy budete vědět, jak zkompilovat program, používat základní volby překladače pro optimalizaci a ladění.

V knize je vysvětleno, jak používat samotný překladač. Na základě dlouholetého pozorování dotazů zasílaných do poštovních konferencí vede čtenáře přímo k důležitým možnostem GCC. Kniha neučí jazyk C.

Kapitoly:

  • Úvod
  • Kompilování programu v jazyce C – popisuje, jak kompilovat programy v jazyce C pomocí gcc. Programy lze kompilovat z jednoho zdrojového souboru nebo z více zdrojových souborů a mohou používat systémové knihovny a hlavičkové soubory
  • Možnosti kompilace – popisuje další běžně používané možnosti kompilátoru, které jsou v GCC k dispozici. Tyto volby řídí funkce, jako jsou vyhledávací cesty používané pro vyhledávání knihoven a souborů include, použití dalších varování a diagnostiky, makra preprocesoru a dialekty jazyka C
  • Používání preprocesoru – popisuje použití preprocesoru GNU C cpp, který je součástí balíčku GCC. Preprocesor rozšiřuje makra ve zdrojových souborech před jejich kompilací. Je automaticky volán vždy, když GCC zpracovává program v jazyce C nebo C++
  • Kompilování pro ladění – poskytuje volbu -g debug pro ukládání dalších ladicích informací do objektových souborů a spustitelných souborů. Tyto ladicí informace umožňují vysledovat chyby od konkrétní strojové instrukce až po odpovídající řádek v původním zdrojovém souboru
  • Kompilování s optimalizací – GCC je optimalizační kompilátor. Poskytuje širokou škálu možností, jejichž cílem je zvýšit rychlost nebo zmenšit velikost vytvářených spustitelných souborů
  • Kompilování programu v jazyce C++ – popisuje, jak používat GCC ke kompilaci programů napsaných v jazyce C++, a možnosti příkazového řádku specifické pro tento jazyk
  • Platformově specifické možnosti – popisuje některé možnosti dostupné pro běžné platformy: Možnosti Intel a AMD x86, rozšíření x86, 64bitové procesory x86, možnosti DEC Alpha, možnosti SPARC, možnosti POWER/PowerPC, podpora více architektur a problémy s plovoucí desetinnou čárkou
  • Řešení problémů – GCC poskytuje několik možností nápovědy a diagnostiky, které pomáhají řešit problémy s procesem kompilace
  • Nástroje související s kompilátorem – popisuje řadu nástrojů, které jsou užitečné v kombinaci s GCC. Patří mezi ně GNU archiver ar pro vytváření knihoven a programy GNU pro profilování a testování pokrytí, gprof a gcov
  • Jak pracuje kompilátor – podrobněji popisuje, jak GCC transformuje zdrojové soubory na spustitelný soubor. Kompilace je vícestupňový proces zahrnující několik nástrojů, včetně samotného překladače GNU (prostřednictvím frontendů gcc nebo g++), assembleru GNU as a linkovacího programu GNU ld. Kompletní sada nástrojů používaných v procesu kompilace se označuje jako řetězec nástrojů
  • Zkoumání zkompilovaných souborů – popisuje několik užitečných nástrojů pro zkoumání obsahu spustitelných souborů a objektových souborů
  • Běžná chybová hlášení – popisuje nejčastější chybová a varovná hlášení vytvářená nástroji gcc a g++. Každý případ je doplněn popisem příčin, příkladem a návrhy možných řešení
  • Získání nápovědy – pokud čtenář narazí na problém, který není popsán v tomto úvodu, existuje několik referenčních příruček, které podrobněji popisují GCC a témata související s jazykem

Tato kniha je vydána pod licencí GNU Free Documentation License.

Přečtěte si knihu

Další strana: & GUI a další knihy

Stránky v tomto článku:
Strana 1 – The C Book a další knihy
Strana 2 – An Introduction to C & GUI Programming a další knihy
Strana 3 – The GNU C Reference Manual a další knihy
Strana 4 – Essential C a další knihy
Strana 5 – Beej’s Guide to Network Programming a další knihy

Všechny knihy v této sérii:

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

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.