15 Excelente Livros Grátis para aprender C

C é uma linguagem de programação de alto nível, procedural, portátil e de propósito geral, que é uma das mais populares e influentes linguagens. Foi projetada para ser compilada usando um compilador simples, para fornecer acesso de baixo nível à memória, para fornecer construções de linguagem que mapeiam eficientemente as instruções da máquina, e para requerer um suporte mínimo de tempo de execução. Muitas linguagens de programação têm uma dívida considerável com C. Tornou-se algo da lingua franca no mundo da programação.

C é bastante simples de entender. Ela permite ao programador organizar programas de uma maneira clara, fácil e lógica. É uma linguagem muito flexível, prática e compacta, combinada com uma sintaxe de fácil leitura. O código escrito em C corre rapidamente, com fácil acesso às facilidades de baixo nível no computador. As diretrizes do compilador permitem produzir uma única versão de um programa compilado para diferentes arquiteturas.

C é sobre liberdade. Portanto, faz sentido aprender C com livros que também incorporam a liberdade. Dê uma olhada nas minhas escolhas e veja se alguma delas agarra a sua fantasia.

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

The C Book

The C Book

The C Book is designed for programmers who already have some experience of using a modern high-level procedural programming language.

Você já deve entender declarações, variáveis, execução condicional, arrays, procedimentos (ou sub-rotinas) e assim por diante.

O livro se concentra nas coisas que são especiais para C. Em particular, é a forma como C é usado que está focado. O livro é ao mesmo tempo informativo e uma boa leitura.

Capítulos incluem:

  • Uma Introdução a C
  • Variáveis e Aritmética – introduz alguns dos fundamentos de C, incluindo palavras-chave e identificadores, declaração de variáveis, tipos reais, tipos integrais, expressões e aritmética, e constantes
  • Controle de Fluxo e Expressões Lógicas – olha para as várias maneiras em que o controle de instruções de fluxo pode ser usado em um programa em C, incluindo algumas instruções que não foram introduzidas até agora. Controle de fluxo, expressões mais lógicas e operadores estranhos
  • Funções – o tipo de funções, recursividade e passagem de argumentos, e ligação
  • Arrays and Pointers – arrays, apontadores, manipulação de caracteres, alocação de tamanho e armazenamento, apontadores para funções, expressões envolvendo apontadores, arrays, o & declarações de operador e função
  • Tipos de dados estruturados – estruturas, uniões, bitfields, enumeros, qualificadores e tipos derivados, e inicialização
  • li>O Pré-processador – como funciona o pré-processador, e diretrizes

  • Áreas Especializadas de C – declarações, definições e acessibilidade, typedef, constantes e voláteis, e pontos de sequência
  • li>Bibliotecas – diagnóstico, manipulação de caracteres, localização, limites, funções matemáticas, saltos não-locais, manipulação de sinais, números variáveis de argumentos, entrada e saída, E/S formatada, E/S de caracteres, E/S sem formatação, funções de acesso aleatório, utilidades gerais, manipulação de strings, e data e hora

  • Programas Completos em C – juntando tudo, argumentos, interpretando os argumentos dos programas, um programa de correspondência de padrões e um exemplo mais ambicioso

Os autores dão permissão ao leitor para fazer o que quiser com o livro desde que haja um reconhecimento dos autores e dos seus direitos autorais. Pelo que Mike Banahan confirmou, o livro está efectivamente sob a licença Creative Commons.

Leia o livro

2. C Elements of Style by Steve Oualline

C Elements of Style

C Elements of Style

C Elements of Style é um guia útil que cobre os princípios do bom estilo de programação, ensinando aos programadores de C e C++ como escrever código que pode ser facilmente lido, compreendido e mantido por outros. Se você é um estudante ou programador profissional, você se beneficiará de muitas dicas e técnicas para construir um código elegante e confiável.

O livro tenta mostrar aos leitores como construir um bom estilo de programação no seu código. Como o computador lê apenas o código e o humano se concentra nos comentários, um bom estilo de programação pertence a ambas as partes de um programa.

O objetivo final é construir um código bem desenhado e bem escrito que não só faça um uso eficaz do computador, mas também contenha comentários construídos cuidadosamente para ajudar os humanos a compreendê-lo. Esta condição irá facilitar o processo de depuração, manutenção e aperfeiçoamento, o que irá eventualmente melhorar a legibilidade, portabilidade, confiabilidade e manutenção do seu código.

Inte, você encontrará diretrizes para escrever comentários, título do programa, determinar nomes de variáveis, formatação de declaração, detalhes da declaração, escrever pré-processador, organizar diretórios e criar makefile.

Este livro é publicado sob a Licença Creative Commons.

Leia o livro

3. Uma Introdução ao GCC por Brian Gough

Um Introdução ao GCC

Um Introdução ao GCC

Um Introdução ao GCC fornece uma introdução aos Compiladores GNU C e C++, gcc e g++, que são parte da Coleção de Compiladores GNU (GCC).

Após ler este livro, você saberá como compilar um programa, usar opções básicas de compilação para otimização e depuração.

Este livro explica como usar o compilador em si. Baseado em anos de observação de perguntas postadas em listas de discussão, ele guia o leitor diretamente para as opções importantes do GCC. O livro não ensina C.

Chapters:

  • Introduction
  • Compilar um programa em C – descreve como compilar programas em C usando o gcc. Os programas podem ser compilados a partir de um único arquivo fonte ou de múltiplos arquivos fonte, e podem usar bibliotecas de sistema e arquivos de cabeçalho
  • Opções de compilação – descreve outras opções de compilação comumente usadas disponíveis no GCC. Estas opções controlam recursos como os caminhos de busca usados para localizar bibliotecas e incluem arquivos, o uso de avisos e diagnósticos adicionais, macros de pré-processador e dialetos de linguagem C
  • Usando o pré-processador – descreve o uso do pré-processador cpp do GNU C, que é parte do pacote GCC. O pré-processador expande as macros nos arquivos fonte antes que elas sejam compiladas. Ele é automaticamente chamado sempre que o GCC processa um programa em C ou C++
  • Compilar para depuração – fornece a opção -g de depuração para armazenar informações adicionais de depuração em arquivos objetos e executáveis. Esta informação de depuração permite que erros sejam rastreados de uma instrução específica da máquina até a linha correspondente no arquivo fonte original
  • Compilação com otimização – GCC é um compilador otimizador. Ele fornece uma ampla gama de opções que visam aumentar a velocidade, ou reduzir o tamanho dos arquivos executáveis que ele gera
  • Compilar um programa em C++ – descreve como usar o GCC para compilar programas escritos em C++, e as opções de linha de comando específicas daquela linguagem
  • Opções específicas da plataforma – descreve algumas das opções disponíveis para plataformas comuns: Opções Intel e AMD x86, extensões x86, processadores x86 de 64 bits, opções DEC Alpha, opções SPARC, opções POWER/PowerPC, suporte a multi-arquitetura, e problemas de ponto flutuante
  • Problemas – o GCC fornece várias opções de ajuda e diagnóstico para ajudar a solucionar problemas no processo de compilação
  • Ferramentas relacionadas ao compilador – descreve uma série de ferramentas que são úteis em combinação com o GCC. Estas incluem o arquivador GNU ar, para a criação de bibliotecas, e os programas de teste de perfil e cobertura GNU, gprof e gcov
  • Como o compilador funciona – descreve com mais detalhes como o GCC transforma os arquivos fonte em um arquivo executável. Compilação é um processo multi-estágio envolvendo várias ferramentas, incluindo o próprio Compilador GNU (através dos frontends gcc ou g++), o GNU Assembler as, e o GNU Linker ld. O conjunto completo de ferramentas usadas no processo de compilação é referido como toolchain
  • Examining compiled files – descreve várias ferramentas úteis para examinar o conteúdo de arquivos executáveis e arquivos objeto
  • Mensagens de erro comuns – descreve as mensagens de erro e aviso mais freqüentes produzidas pelo gcc e g++. Cada caso é acompanhado por uma descrição das causas, um exemplo e sugestões de possíveis soluções
  • Obter ajuda – se os leitores encontrarem um problema não coberto por esta introdução, existem vários manuais de referência que descrevem GCC e tópicos relacionados à linguagem em mais detalhes

Este livro é publicado sob a GNU Free Documentation License.

Leia o livro

Página seguinte: Página 2 – Uma Introdução a C & GUI e mais livros

Páginas neste artigo:
Página 1 – O Livro C e mais livros
Página 2 – Uma Introdução a C & Programação GUI e mais livros
Página 3 – O Manual de Referência C GNU e mais livros
Página 4 – C Essencial e mais livros
Página 5 – Guia de Programação em Rede do Beej e mais livros

Todos os livros desta série:

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

Deixe uma resposta

O seu endereço de email não será publicado.