15 excelentes libros gratuitos para aprender C

C es un lenguaje de programación de propósito general, procedimental, portátil y de alto nivel que es uno de los lenguajes más populares e influyentes. Fue diseñado para ser compilado utilizando un compilador sencillo, para proporcionar acceso de bajo nivel a la memoria, para proporcionar construcciones de lenguaje que se asignan de manera eficiente a las instrucciones de la máquina, y para requerir un apoyo mínimo en tiempo de ejecución. Muchos lenguajes de programación tienen una deuda considerable con C. Se ha convertido en una especie de lingua franca en el mundo de la programación.

C es bastante sencillo de entender. Permite al programador organizar los programas de forma clara, fácil y lógica. Es un lenguaje muy flexible, práctico y compacto, combinado con una sintaxis fácil de leer. El código escrito en C se ejecuta rápidamente, con fácil acceso a las facilidades de bajo nivel del ordenador. Las directivas del compilador permiten producir una única versión de un programa compilado para diferentes arquitecturas.

C es libertad. Por lo tanto, tiene sentido aprender C con libros que también encarnan la libertad. Echa un vistazo a mis selecciones y comprueba si alguna te llama la atención.

1. El libro de C, de Mike Banahan, Declan Brady y Mark Doran

El libro de C

El libro de C

El libro de C está diseñado para programadores que ya tienen cierta experiencia en el uso de un lenguaje de programación procedimental moderno de alto nivel.

Debería entender ya las sentencias, las variables, la ejecución condicional, las matrices, los procedimientos (o subrutinas) y demás.

El libro se concentra en las cosas que son especiales de C. En concreto, se centra en la forma en que se utiliza C. El libro es a la vez informativo y de buena lectura.

Los capítulos incluyen:

  • Introducción a C
  • Variables y Aritmética – introduce algunos de los fundamentos de C, incluyendo palabras clave e identificadores, declaración de variables, tipos reales, tipos integrales, expresiones y aritmética, y constantes
  • Control de Flujo y Expresiones Lógicas – examina las diversas formas en que las declaraciones de control de flujo pueden ser utilizadas en un programa C, incluyendo algunas declaraciones que no han sido introducidas hasta ahora. Control de flujo, más expresiones lógicas y operadores extraños
  • Funciones – el tipo de funciones, la recursividad y el paso de argumentos, y la vinculación
  • Arrays y punteros – arrays, punteros, manejo de caracteres, sizeof y asignación de almacenamiento, punteros a funciones, expresiones que implican punteros, arrays, el & operador y declaraciones de funciones
  • Tipos de datos estructurados – estructuras, uniones, campos de bits, enums, calificadores y tipos derivados, e inicialización
  • El preprocesador – cómo funciona el preprocesador, y directivas
  • Áreas especializadas de C – declaraciones, definiciones y accesibilidad, typedef, const y volatile, y puntos de secuencia
  • Bibliotecas – diagnósticos, manejo de caracteres, localización, límites, funciones matemáticas, saltos no locales, manejo de señales, números variables de argumentos, entrada y salida, E/S con formato, E/S sin formato, funciones de acceso aleatorio, utilidades generales, manejo de cadenas, y fecha y hora
  • Programas Completos en C: cómo juntarlo todo, argumentos para main, interpretación de argumentos del programa, un programa de concordancia de patrones y un ejemplo más ambicioso
  • Los autores dan permiso al lector para hacer lo que quiera con el libro siempre que haya un reconocimiento de los autores y su copyright. Por lo que ha confirmado Mike Banahan, el libro está efectivamente bajo la licencia Creative Commons.

    Lee el libro

    2. C Elements of Style de Steve Oualline

    C Elementos de Estilo

    C Elementos de Estilo

    C Elementos de Estilo es una guía útil que cubre los principios del buen estilo de programación, enseñando a los programadores de C y C++ cómo escribir código que pueda ser fácilmente leído, entendido y mantenido por otros. Tanto si es un estudiante como un programador profesional, se beneficiará de los numerosos consejos y técnicas para construir un código elegante y fiable.

    El libro intenta mostrar a los lectores cómo construir un buen estilo de programación en su código. Dado que el ordenador sólo lee el código y el humano se concentra en los comentarios, un buen estilo de programación se refiere a ambas partes de un programa.

    El objetivo final es construir un código bien diseñado y bien escrito que no sólo haga un uso eficaz del ordenador sino que también contenga comentarios cuidadosamente construidos para ayudar a los humanos a entenderlo. Esta condición facilitará el proceso de depuración, mantenimiento y mejora, lo que finalmente mejorará la legibilidad, la portabilidad, la fiabilidad y la capacidad de mantenimiento de su código.

    En el interior, encontrará directrices sobre la escritura de comentarios, el encabezamiento del programa, la determinación de los nombres de las variables, el formato de las declaraciones, los detalles de las declaraciones, la escritura del preprocesador, la organización de los directorios y la creación de makefile.

    Este libro se publica bajo la licencia Creative Commons.

    Lea el libro

    3. Una introducción a GCC por Brian Gough

    Una introducción a GCC

    Una introducción a GCC

    Una introducción a GCC proporciona una introducción a los compiladores de C y C++ de GNU, gcc y g++, que forman parte de la GNU Compiler Collection (GCC).

    Después de leer este libro, sabrá cómo compilar un programa, utilizar las opciones básicas del compilador para la optimización y la depuración.

    Este libro explica cómo utilizar el propio compilador. Basado en años de observación de las preguntas publicadas en las listas de correo, guía al lector directamente a las opciones importantes de GCC. El libro no enseña C.

    Capítulos:

    • Introducción
    • Compilar un programa en C – describe cómo compilar programas en C utilizando gcc. Los programas pueden compilarse a partir de un único archivo fuente o de varios archivos fuente, y pueden utilizar bibliotecas del sistema y archivos de cabecera
    • Opciones de compilación – describe otras opciones del compilador de uso común disponibles en GCC. Estas opciones controlan características como las rutas de búsqueda utilizadas para localizar bibliotecas y archivos de inclusión, el uso de advertencias y diagnósticos adicionales, las macros del preprocesador y los dialectos del lenguaje C
    • Uso del preprocesador – describe el uso del preprocesador GNU C cpp, que forma parte del paquete GCC. El preprocesador expande las macros en los archivos fuente antes de que sean compilados. Se llama automáticamente cada vez que GCC procesa un programa C o C++
    • Compilación para depuración – proporciona la opción -g debug para almacenar información de depuración adicional en los archivos objeto y ejecutables. Esta información de depuración permite rastrear los errores desde una instrucción específica de la máquina hasta la línea correspondiente en el archivo fuente original
    • Compilación con optimización – GCC es un compilador de optimización. Proporciona una amplia gama de opciones cuyo objetivo es aumentar la velocidad, o reducir el tamaño, de los archivos ejecutables que genera
    • Compilación de un programa C++ – describe cómo utilizar GCC para compilar programas escritos en C++, y las opciones de línea de comandos específicas para ese lenguaje
    • Opciones específicas de la plataforma – describe algunas de las opciones disponibles para las plataformas comunes: Opciones de Intel y AMD x86, extensiones x86, procesadores x86 de 64 bits, opciones de DEC Alpha, opciones de SPARC, opciones de POWER/PowerPC, soporte de multiarquitectura y problemas de punto flotante
    • Solución de problemas – GCC proporciona varias opciones de ayuda y diagnóstico para ayudar a solucionar problemas con el proceso de compilación
    • Herramientas relacionadas con el compilador – describe una serie de herramientas que son útiles en combinación con GCC. Entre ellas se encuentran el archivador ar de GNU, para la creación de bibliotecas, y los programas de perfilado y pruebas de cobertura de GNU, gprof y gcov
    • Cómo funciona el compilador – describe con más detalle cómo GCC transforma los archivos fuente en un archivo ejecutable. La compilación es un proceso de varias etapas que involucra a varias herramientas, incluyendo el propio compilador de GNU (a través de los frontends gcc o g++), el ensamblador de GNU as, y el enlazador de GNU ld. El conjunto completo de herramientas utilizadas en el proceso de compilación se denomina cadena de herramientas
    • Examinar archivos compilados – describe varias herramientas útiles para examinar el contenido de los archivos ejecutables y los archivos de objetos
    • Mensajes de error comunes – describe los mensajes de error y advertencia más frecuentes producidos por gcc y g++. Cada caso va acompañado de una descripción de las causas, un ejemplo y sugerencias de posibles soluciones
    • Obtención de ayuda – si los lectores se encuentran con un problema no cubierto por esta introducción, hay varios manuales de referencia que describen GCC y temas relacionados con el lenguaje con más detalle
    • Este libro se publica bajo la Licencia de Documentación Libre de GNU.

      Lea el libro

      Siguiente página: Página 2 – Una introducción a C & GUI y más libros

      Páginas de este artículo:
      Página 1 – El libro de C y más libros
      Página 2 – Una introducción a C & Programación GUI y más libros
      Página 3 – El manual de referencia de GNU C y más libros
      Página 4 – C esencial y más libros
      Página 5 – Guía de Beej para la programación en red y más libros

      Todos los libros de esta 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada.