15 kiváló ingyenes könyv a C nyelvtanuláshoz

A C egy általános célú, procedurális, hordozható, magas szintű programozási nyelv, amely az egyik legnépszerűbb és legbefolyásosabb nyelv. Úgy tervezték, hogy egyszerű fordítóprogrammal fordítható legyen, alacsony szintű hozzáférést biztosítson a memóriához, a nyelvi konstrukciókat hatékonyan leképezze a gépi utasításokra, és minimális futásidejű támogatást igényeljen. Számos programozási nyelv jelentős mértékben köszönheti a C-nek. A programozás világának egyfajta lingua francájává vált.

A C meglehetősen egyszerűen érthető. Lehetővé teszi a programozó számára, hogy a programokat világos, egyszerű, logikus módon szervezze meg. Nagyon rugalmas, praktikus és kompakt nyelv, könnyen olvasható szintaxissal kombinálva. A C nyelven írt kód gyorsan fut, és könnyen hozzáférhet a számítógép alacsony szintű eszközeihez. A fordítói direktívák lehetővé teszik, hogy a különböző architektúrákra lefordított programnak egyetlen változatát készítsük el.

A C a szabadságról szól. Ezért van értelme a C-t olyan könyvekből tanulni, amelyek szintén a szabadságot testesítik meg. Vessen egy pillantást az általam kiválasztott könyvekre, hátha valamelyik elnyeri a tetszését.

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

The C Book

The C Book

A The C Book olyan programozóknak készült, akik már rendelkeznek némi tapasztalattal egy modern, magas szintű procedurális programozási nyelv használatában.

Az utasításokat, a változókat, a feltételes végrehajtást, a tömböket, az eljárásokat (vagy szubrutinokat) és így tovább már ismernie kell.

A könyv azokra a dolgokra koncentrál, amelyek különlegesek a C-ben. Különösen a C használatának módja áll a középpontban. A könyv egyszerre informatív és jó olvasmány.

A fejezetek a következők:

  • Bevezetés a C-be
  • Változók és aritmetika – bemutatja a C néhány alapját, beleértve a kulcsszavakat és azonosítókat, a változók deklarálását, a valós típusokat, az integrált típusokat, a kifejezéseket és az aritmetikát, valamint a konstansokat
  • Folyamatvezérlés és logikai kifejezések – megvizsgálja, hogy a C programban milyen különböző módon használhatók a folyamatvezérlő utasítások, beleértve néhány eddig nem bemutatott utasítást. Az áramlás vezérlése, további logikai kifejezések és furcsa operátorok
  • Függvények – a függvények típusa, rekurzió és argumentumátadás, valamint összekapcsolás
  • Tömbök és mutatók – tömbök, mutatók, karakterkezelés, sizeof és tárolókiosztás, mutatók függvényekhez, mutatókat tartalmazó kifejezések, mutatók, tömbök, a & operátor és függvénydeklarációk
  • Szerkezetes adattípusok – struktúrák, unió, bitmezők, enumok, minősítők és származtatott típusok, inicializálás
  • A preprocesszor – a preprocesszor működése és direktívák
  • A C speciális területei – deklarációk, definíciók és hozzáférhetőség, typedef, const és volatile, és szekvenciapontok
  • Könyvtárak – diagnosztika, karakterkezelés, lokalizáció, korlátok, matematikai függvények, nem lokális ugrások, jelkezelés, változó számú argumentumok, be- és kimenet, formázott I/O, karakter I/O, nem formázott I/O, véletlen hozzáférésű függvények, általános segédprogramok, stringkezelés, valamint dátum és idő
  • Kész programok C-ben – az egész összerakása, argumentumok a main-hoz, a program argumentumainak értelmezése, egy mintaillesztő program és egy ambiciózusabb példa

A szerzők engedélyt adnak az olvasónak, hogy a könyvvel bármit csináljon, feltéve, hogy a szerzők és szerzői jogaik feltüntetésre kerülnek. Amit Mike Banahan megerősített, a könyv gyakorlatilag a Creative Commons licenc alatt áll.

Olvassa el a könyvet

2. C Elements of Style by Steve Oualline

C Elements of Style

C Elements of Style

A C Elements of Style egy hasznos útmutató, amely a jó programozási stílus alapelveivel foglalkozik, megtanítva a C és C++ programozókat, hogyan írjanak olyan kódot, amelyet mások is könnyen olvashatnak, megérthetnek és karbantarthatnak. Akár diák, akár hivatásos programozó, hasznát veheti a számos tippnek és technikának, amelyekkel elegáns, megbízható kódot készíthet.”

A könyv megpróbálja megmutatni az olvasóknak, hogyan építsenek jó programozási stílust a kódjukba. Mivel a számítógép csak a kódot olvassa, az ember pedig a megjegyzésekre koncentrál, a jó programozási stílus a program mindkét részére vonatkozik.

A végső cél az, hogy jól megtervezett, jól megírt kódot építsünk, amely nemcsak hatékonyan használja ki a számítógépet, hanem gondosan felépített megjegyzéseket is tartalmaz, amelyek segítik az emberek megértését. Ez az állapot megkönnyíti a hibakeresést, a karbantartást és a továbbfejlesztést, ami végső soron javítja a kód olvashatóságát, hordozhatóságát, megbízhatóságát és karbantarthatóságát.

A könyvben találsz útmutatást a megjegyzések írására, a programcímek írására, a változónevek meghatározására, az utasítások formázására, az utasítások részleteire, a preprocesszor írására, a könyvtárak szervezésére és a makefile létrehozására.

A könyv a Creative Commons License alatt jelent meg.

A könyv olvasása

3. An Introduction to GCC by Brian Gough

Egy bevezetés a GCC-be

Egy bevezetés a GCC-be

A bevezetés a GCC-be bevezetést nyújt a GNU C és C++ fordítóprogramok, a gcc és a g++ használatába, amelyek a GNU Compiler Collection (GCC) részét képezik.

A könyv elolvasása után tudni fogja, hogyan fordítson le egy programot, hogyan használja az alapvető fordítóopciókat az optimalizáláshoz és a hibakereséshez.

Ez a könyv elmagyarázza, hogyan használja magát a fordítót. A levelezőlistákon feltett kérdések többéves megfigyelése alapján egyenesen a GCC fontos opcióihoz vezeti az olvasót. A könyv nem tanítja a C nyelvet.

Könyvfejezetek:

  • Bevezetés
  • C program fordítása – leírja, hogyan fordíthatunk C programokat a gcc segítségével. A programok fordíthatók egyetlen forrásfájlból vagy több forrásfájlból, és használhatnak rendszerkönyvtárakat és fejlécfájlokat
  • Kompilálási lehetőségek – ismerteti a GCC-ben elérhető egyéb, gyakran használt fordítási lehetőségeket. Ezek az opciók olyan funkciókat szabályoznak, mint a könyvtárak és include fájlok keresési útvonalai, a további figyelmeztetések és diagnosztikák használata, a preprocesszor makrók és a C nyelvi dialektusok
  • A preprocesszor használata – a GCC csomag részét képező GNU C preprocesszor cpp használatát írja le. A preprocesszor a forrásfájlokban lévő makrókat a lefordítás előtt kibontja. Automatikusan meghívódik, amikor a GCC feldolgoz egy C vagy C++ programot
  • Kompilálás hibakereséshez – biztosítja a -g debug opciót további hibakeresési információk tárolásához az objektumfájlokban és a futtatható fájlokban. Ezek a hibakeresési információk lehetővé teszik a hibák visszakövetését egy adott gépi utasítástól az eredeti forrásfájl megfelelő soráig
  • Optimalizálással történő fordítás – a GCC egy optimalizáló fordító. Számos olyan opciót biztosít, amelyek célja az általa generált futtatható fájlok sebességének növelése, illetve méretének csökkentése
  • C++ program fordítása – leírja, hogyan használhatjuk a GCC-t C++ nyelven írt programok fordítására, valamint az erre a nyelvre jellemző parancssori opciókat
  • Platformspecifikus opciók – ismerteti az általános platformokhoz elérhető néhány opciót: Intel és AMD x86 opciók, x86 kiterjesztések, x86 64 bites processzorok, DEC Alpha opciók, SPARC opciók, POWER/PowerPC opciók, Multi-architektúra támogatás és lebegőpontos problémák
  • Hibaelhárítás – a GCC számos segítséget és diagnosztikai opciót biztosít a fordítási folyamat során felmerülő problémák elhárításához
  • Kompilátorral kapcsolatos eszközök – számos olyan eszközt ismertet, amelyek a GCC-vel együtt hasznosak. Ezek közé tartozik a GNU archiver ar, a könyvtárak létrehozásához, valamint a GNU profilalkotó és lefedettségi tesztelő programok, a gprof és a gcov
  • Hogyan működik a fordító – részletesebben leírja, hogyan alakítja át a GCC a forrásfájlokat futtatható fájlokká. A fordítás egy többlépcsős folyamat, amelyben több eszköz is részt vesz, köztük maga a GNU fordító (a gcc vagy a g++ frontendeken keresztül), a GNU Assembler as és a GNU Linker ld. A fordítási folyamatban használt eszközök teljes készletét eszközláncnak nevezzük
  • A fordított fájlok vizsgálata – számos hasznos eszközt ismertet a végrehajtható fájlok és objektumfájlok tartalmának vizsgálatához
  • Gyakori hibaüzenetek – a gcc és a g++ által előállított leggyakoribb hiba- és figyelmeztető üzeneteket ismerteti. Minden egyes esethez tartozik az okok leírása, egy példa és megoldási javaslatok
  • Segítségkérés – ha az olvasó olyan problémával találkozik, amellyel ez a bevezető nem foglalkozik, számos referencia kézikönyv áll rendelkezésre, amelyek részletesebben ismertetik a GCC-vel és a nyelvvel kapcsolatos témákat

Ez a könyv a GNU Free Documentation License alatt jelent meg.

A könyv olvasása

Következő oldal: oldal – Bevezetés a C nyelvbe & GUI és további könyvek

A cikk oldalai:
1. oldal – The C Book és további könyvek
2. oldal – An Introduction to C & GUI Programming és további könyvek
3. oldal – The GNU C Reference Manual és további könyvek
4. oldal – Essential C és további könyvek
5. oldal – Beej’s Guide to Network Programming és további könyvek

A sorozat összes könyve:

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

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.