15 excelente cărți gratuite pentru a învăța C

C este un limbaj de programare de nivel înalt, de uz general, procedural, portabil, care este unul dintre cele mai populare și influente limbaje. A fost conceput pentru a fi compilat cu ajutorul unui compilator simplu, pentru a oferi acces de nivel scăzut la memorie, pentru a oferi construcții de limbaj care se mapează eficient la instrucțiunile mașinii și pentru a necesita un suport minim de timp de execuție. Multe limbaje de programare au o datorie considerabilă față de C. A devenit un fel de lingua franca în lumea programării.

C este destul de simplu de înțeles. Îi permite programatorului să organizeze programele într-un mod clar, ușor și logic. Este un limbaj foarte flexibil, practic și compact, combinat cu o sintaxă ușor de citit. Codul scris în C rulează rapid, cu acces ușor la facilitățile de nivel scăzut din calculator. Directivele de compilare fac posibilă producerea unei singure versiuni a unui program compilat pentru diferite arhitecturi.

C este despre libertate. Prin urmare, are sens să învățăm C cu cărți care întruchipează, de asemenea, libertatea. Aruncați o privire la alegerile mele și vedeți dacă vreuna dintre ele vă atrage fantezia.

1. Cartea C de Mike Banahan, Declan Brady și Mark Doran

Cartea C

Cartea C

Cartea C este concepută pentru programatorii care au deja o anumită experiență în utilizarea unui limbaj de programare procedurală modernă de nivel înalt.

Ar trebui să înțelegeți deja declarațiile, variabilele, execuția condiționată, array-urile, procedurile (sau subrutinele) și așa mai departe.

Cartea se concentrează asupra lucrurilor care sunt speciale pentru C. În special, se pune accentul pe modul în care C este utilizat. Cartea este atât informativă, cât și o lectură plăcută.

Capitolele includ:

  • O introducere în C
  • Variabile și aritmetică – introduce unele dintre elementele fundamentale ale C, inclusiv cuvinte cheie și identificatori, declararea variabilelor, tipuri reale, tipuri integrale, expresii și aritmetică și constante
  • Controlul fluxului și expresii logice – analizează diferitele moduri în care declarațiile de control al fluxului pot fi utilizate într-un program C, inclusiv unele declarații care nu au fost introduse până acum. Controlul fluxului, mai multe expresii logice și operatori ciudați
  • Funcții – tipul de funcții, recursivitatea și trecerea de argumente și legătura
  • Array-uri și pointeri – array-uri, pointeri, manipularea caracterelor, sizeof și alocarea memoriei, pointeri la funcții, expresii care implică pointeri, array-uri, operatorul & și declarațiile funcțiilor
  • Tipuri de date structurate – structuri, uniuni, câmpuri de biți, enumerații, calificatori și tipuri derivate, și inițializare
  • Preprocesorul – cum funcționează preprocesorul și directive
  • Zone specializate ale C – declarații, definiții și accesibilitate, typedef, const și volatile, și puncte de secvență
  • Biblioteci – diagnostice, manipularea caracterelor, localizare, limite, funcții matematice, salturi nelocale, manipularea semnalelor, numere variabile de argumente, intrare și ieșire, I/O formatate, I/O cu caractere, I/O neformatate, I/O neformatate, funcții cu acces aleatoriu, utilități generale, manipularea șirurilor de caractere, și data și ora
  • Programe complete în C – punerea laolaltă, argumente pentru main, interpretarea argumentelor programului, un program de potrivire a modelelor și un exemplu mai ambițios

Autorii îi dau cititorului permisiunea de a face tot ceea ce dorește cu această carte, cu condiția să existe o recunoaștere a autorilor și a drepturilor de autor. Din ceea ce a confirmat Mike Banahan, cartea este efectiv sub licența Creative Commons.

Citește cartea

2. C Elements of Style de Steve Oualline

C Elements of Style

C Elements of Style

C Elements of Style este un ghid util care acoperă principiile unui bun stil de programare, învățându-i pe programatorii C și C++ cum să scrie cod care poate fi ușor de citit, înțeles și întreținut de alții. Fie că sunteți student sau programator profesionist, veți beneficia de numeroasele sfaturi și tehnici pentru construirea unui cod elegant și fiabil.

Cartea încearcă să le arate cititorilor cum să construiască un bun stil de programare în codul dumneavoastră. Deoarece calculatorul citește doar codul, iar omul se concentrează asupra comentariilor, un bun stil de programare se referă la ambele părți ale unui program.

Obiectivul final este de a construi un cod bine conceput și bine scris, care nu numai că folosește eficient calculatorul, dar conține și comentarii atent construite pentru a ajuta omul să îl înțeleagă. Această condiție va ușura procesul de depanare, întreținere și îmbunătățire, ceea ce va îmbunătăți în cele din urmă lizibilitatea, portabilitatea, fiabilitatea și întreținerea codului dumneavoastră.

În interior, veți găsi îndrumări privind scrierea comentariilor, titlul programului, determinarea numelor variabilelor, formatarea instrucțiunilor, detaliile instrucțiunilor, scrierea preprocesorului, organizarea directoarelor și crearea fișierului makefile.

Această carte este publicată sub licența Creative Commons.

Citește cartea

3. An Introduction to GCC de Brian Gough

An Introduction to GCC

An Introduction to GCC

An Introduction to GCC oferă o introducere în compilatoarele GNU C și C++, gcc și g++, care fac parte din colecția de compilatoare GNU (GCC).

După ce veți citi această carte, veți ști cum să compilați un program, să folosiți opțiunile de bază ale compilatorului pentru optimizare și depanare.

Această carte explică modul de utilizare a compilatorului în sine. Bazându-se pe ani de zile de observare a întrebărilor postate pe listele de discuții, ea ghidează cititorul direct către opțiunile importante ale GCC. Cartea nu învață C.

Capitole:

  • Introducere
  • Compilarea unui program C – descrie cum se compilează programele C folosind gcc. Programele pot fi compilate dintr-un singur fișier sursă sau din mai multe fișiere sursă și pot utiliza biblioteci de sistem și fișiere antet
  • Opțiuni de compilare – descrie alte opțiuni de compilare utilizate în mod obișnuit, disponibile în GCC. Aceste opțiuni controlează caracteristici cum ar fi căile de căutare utilizate pentru localizarea bibliotecilor și a fișierelor de includere, utilizarea de avertismente și diagnostice suplimentare, macro-uri de preprocesor și dialecte ale limbajului C
  • Utilizarea preprocesorului – descrie utilizarea preprocesorului GNU C cpp, care face parte din pachetul GCC. Preprocesorul extinde macrourile din fișierele sursă înainte ca acestea să fie compilate. Este apelat automat ori de câte ori GCC procesează un program C sau C++
  • Compilarea pentru depanare – oferă opțiunea -g debug pentru a stoca informații suplimentare de depanare în fișierele obiect și în executabile. Aceste informații de depanare permit urmărirea erorilor de la o anumită instrucțiune mașină până la linia corespunzătoare din fișierul sursă original
  • Compilare cu optimizare – GCC este un compilator de optimizare. Acesta oferă o gamă largă de opțiuni care au ca scop creșterea vitezei sau reducerea dimensiunii fișierelor executabile pe care le generează
  • Compilarea unui program C++ – descrie modul de utilizare a GCC pentru a compila programe scrise în C++, precum și opțiunile din linia de comandă specifice acestui limbaj
  • Opțiuni specifice platformei – descrie unele dintre opțiunile disponibile pentru platformele obișnuite: Opțiunile Intel și AMD x86, extensiile x86, procesoarele x86 pe 64 de biți, opțiunile DEC Alpha, opțiunile SPARC, opțiunile POWER/PowerPC, suportul pentru mai multe arhitecturi și problemele legate de virgulă mobilă
  • Troubleshooting – GCC oferă mai multe opțiuni de ajutor și diagnosticare pentru a ajuta la depistarea problemelor legate de procesul de compilare
  • Unelte legate de compilator – descrie o serie de instrumente care sunt utile în combinație cu GCC. Printre acestea se numără GNU archiver ar, pentru crearea de biblioteci, și programele GNU de profilare și testare a acoperirii, gprof și gcov
  • Cum funcționează compilatorul – descrie mai în detaliu modul în care GCC transformă fișierele sursă într-un fișier executabil. Compilarea este un proces în mai multe etape care implică mai multe instrumente, inclusiv compilatorul GNU propriu-zis (prin intermediul front-end-urilor gcc sau g++), asamblorul GNU as și linkerul GNU ld. Setul complet de instrumente utilizate în procesul de compilare este denumit lanț de instrumente
  • Examinarea fișierelor compilate – descrie mai multe instrumente utile pentru examinarea conținutului fișierelor executabile și al fișierelor obiect
  • Mesaje de eroare comune – descrie cele mai frecvente mesaje de eroare și de avertizare produse de gcc și g++. Fiecare caz este însoțit de o descriere a cauzelor, un exemplu și sugestii de soluții posibile
  • Câștigarea de ajutor – dacă cititorii întâlnesc o problemă care nu este acoperită de această introducere, există mai multe manuale de referință care descriu mai detaliat subiectele legate de GCC și de limbaje

Acestă carte este publicată sub licența GNU Free Documentation License.

Citește cartea

Pagina următoare: Pagina 2 – O introducere în C & GUI și alte cărți

Pagini în acest articol:

Pagini în acest articol:

Pagini în acest articol:
Pagina 1 – The C Book și mai multe cărți
Pagina 2 – An Introduction to C & Programare GUI și mai multe cărți
Pagina 3 – The GNU C Reference Manual și mai multe cărți
Pagina 4 – Essential C și mai multe cărți
Pagina 5 – Beej’s Guide to Network Programming și mai multe cărți

Toate cărțile din această serie:

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

Lasă un răspuns

Adresa ta de email nu va fi publicată.