Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| el_lenguaje_de_programacion_c [2024/09/27 22:44] – peron | el_lenguaje_de_programacion_c [2026/04/21 16:06] (actual) – editor externo 127.0.0.1 | ||
|---|---|---|---|
| Línea 2: | Línea 2: | ||
| Este es un ejemplar amorosamente wikificado por ~peron de //El Lenguaje de Programación C//, 2da Edición, de B. Kerningham y D. Ritchie, adaptado para [[hacker|hackers]] del Tercer Mundo. | Este es un ejemplar amorosamente wikificado por ~peron de //El Lenguaje de Programación C//, 2da Edición, de B. Kerningham y D. Ritchie, adaptado para [[hacker|hackers]] del Tercer Mundo. | ||
| + | |||
| + | ==== Prefacios ==== | ||
| [[El lenguaje de programación C - Prefacios|Prefacios]] | [[El lenguaje de programación C - Prefacios|Prefacios]] | ||
| - | |||
| - | |||
| ==== Capítulos ==== | ==== Capítulos ==== | ||
| [[El lenguaje de programación C - Introducción|Introducción]] | [[El lenguaje de programación C - Introducción|Introducción]] | ||
| - | [[El lenguaje de Programación C - Capitulo 1|Capitulo 1]] | + | [[El lenguaje de Programación C - Capitulo 1|Capitulo 1: Introducción General]] |
| - | [[El lenguaje de Programación C - Capitulo 2|Capítulo 2]] | + | [[El lenguaje de Programación C - Capitulo 2|Capítulo 2: Tipos, operadores y expresiones]] |
| - | [[El lenguaje de Programación C - Capitulo 3|capitulo 3]] | + | [[El lenguaje de Programación C - Capitulo 3|capitulo 3: Control de Flujo]] |
| [[El lenguaje de Programación C - Capitulo 4 |Capitulo 4]] | [[El lenguaje de Programación C - Capitulo 4 |Capitulo 4]] | ||
| Línea 26: | Línea 26: | ||
| [[El lenguaje de Programación C - Capitulo 8 |Capitulo 8]] | [[El lenguaje de Programación C - Capitulo 8 |Capitulo 8]] | ||
| + | ==== Apéndices ==== | ||
| + | [[El lenguaje de Programación C - Apéndice A|Apéndice A: Manual de Referencia]] | ||
| + | [[El lenguaje de Programación C - Apéndice B|Apéndice B: Biblioteca Estándar]] | ||
| - | ===== Capítulo 6: Estructuras ===== | + | [[El lenguaje de Programación |
| - | + | ||
| - | Una estructura es una colección de una o más variables, de tipos posiblemente diferentes, agrupadas bajo un solo nombre para manejo conveniente. (Las estructuras se conocen como “ records” en algunos otros lenguajes, principalm ente Pascal.) Las estructuras ayudan a organizar datos complicados, | + | |
| - | + | ||
| - | Un ejemplo tradicional de estructura es el registro de una nómina: un empleado está descrito por un conjunto de atributos, como nombre, domicilio, número del seguro social, salario, etc. Algunos de estos atributos pueden, a su vez, ser estructuras: | + | |
| - | + | ||
| - | El principal cambio realizado por el estándar ANSI es la definición de la asignación de estructuras: | + | |
| - | + | ||
| - | ==== 6.1 Conceptos básicos sobre estructuras ==== | + | |
| - | + | ||
| - | ==== 6.2 Estructuras y funciones ==== | + | |
| - | + | ||
| - | ==== 6.3 Arreglos de estructuras ==== | + | |
| - | + | ||
| - | ==== 6.4 Apuntadores a estructuras ==== | + | |
| - | + | ||
| - | ==== 6.5 Estructuras autorreferenciadas ==== | + | |
| - | + | ||
| - | ==== 6.6 Búsqueda en tablas ==== | + | |
| - | + | ||
| - | ==== 6.7 Typedef ==== | + | |
| - | + | ||
| - | ==== 6.8 Uniones ==== | + | |
| - | + | ||
| - | ==== 6.9 Campos de bits ==== | + | |
| - | + | ||
| - | ===== Capítulo 7: ===== | + | |
| - | + | ||
| - | Las operaciones de entrada y salida no son en si parle del lenguaje | + | |
| - | + | ||
| - | El estándar ANSI define de manera precisa estas funciones de biblioteca, de modo que pueden existir en forma compatible en cualquier sistema en donde exista | + | |
| - | + | ||
| - | Las propiedades de las funciones de biblioteca están especificadas en más de una docena de // | + | |
| - | + | ||
| - | ==== 7.1 Entrada y salida estándar ==== | + | |
| - | + | ||
| - | ==== 7.2 Salida con formato - printf ==== | + | |
| - | + | ||
| - | == Tabla 7-1. Conversiones básicas de Printf == | + | |
| - | + | ||
| - | ==== 7.3 Listas de argumentos de longitud variable ==== | + | |
| - | + | ||
| - | ==== 7.4 Entrada con formato — scanf ==== | + | |
| - | + | ||
| - | == Tabla 7-2 - Conversiones básicas de scanf == | + | |
| - | + | ||
| - | ^Caracter ^Dato de entrada:tipo de argumento ^ | + | |
| - | |'''' | + | |
| - | |'''' | + | |
| - | |'''' | + | |
| - | |'''' | + | |
| - | |'''' | + | |
| - | |'''' | + | |
| - | |'''' | + | |
| - | |'''' | + | |
| - | |'''' | + | |
| - | + | ||
| - | + | ||
| - | ==== 7.5 Acceso a archivos ==== | + | |
| - | + | ||
| - | ==== 7.6 Manejo de errores—stderr y exit ==== | + | |
| - | + | ||
| - | ==== 7.7 Entrada y salida de líneas ==== | + | |
| - | + | ||
| - | ==== 7.8 Otras funciones ==== | + | |
| - | + | ||
| - | La biblioteca estándar proporciona una amplia variedad de funciones. Esta sección es una breve sinopsis de las más útiles. En el [[#apendice b|apéndice B]] pueden encontrarse más detalles y muchas otras funciones. | + | |
| - | + | ||
| - | === 7.8.1 Operaciones sobre cadenas === | + | |
| - | + | ||
| - | === 7.8.2 Prueba y conversión de clases de caracteres === | + | |
| - | + | ||
| - | === 7.8.3 Ungete === | + | |
| - | + | ||
| - | === 7.8.4 Ejecución de órdenes === | + | |
| - | + | ||
| - | === 7.8.5 Administración del almacenamiento === | + | |
| - | + | ||
| - | === 7.8.6 Funciones matemáticas === | + | |
| - | + | ||
| - | + | ||
| - | === 7.8.7 Generación de números aleatorios === | + | |
| - | + | ||
| - | + | ||
| - | ===== Capítulo 8: La interfaz con el sistem a UNIX ===== | + | |
| - | + | ||
| - | El sistema operativo UNIX proporciona sus servicios a través de un conjunto de //llamadas al sistema//, que consisten en funciones que están dentro del sistema operativo y que pueden ser invocadas por programas del usuario. Este capitulo describe cómo emplear algunas de las más importantes llamadas al sistema desde programas en C. Si el lector usa UNIX, esto debe serle directamente útil, debido a que algunas veces es necesario emplear llamadas al sistema para tener máxima eficiencia, o para tener acceso a alguna facilidad que no esté en la biblioteca. | + | |
| - | + | ||
| - | Incluso, si se emplea C en un sistema operativo diferente el lector debería ser capaz de adentrarse en la programación estudiando estos ejemplos; aunque los detalles varían, se encontrará un código semejante en cualquier sistema. Puesto que la biblioteca de C ANSI está en muchos casos modelada con base en las facilidades de UNIX , este código puede ayudar también a su entendimiento. | + | |
| - | + | ||
| - | El capítulo está dividido en tres partes fundamentales: | + | |
| - | + | ||
| - | El capítulo 7 tuvo que ver con una interfaz de entrada/ | + | |
| - | + | ||
| - | ==== 8.1 Descriptores de Archivos ==== | + | |
| - | + | ||
| - | ==== 8.2 E/S de bajo nivel — read y write ==== | + | |
| - | + | ||
| - | ==== 8.3 Open, creat, close, unlink ==== | + | |
| - | + | ||
| - | ==== 8.4 Acceso aleatorio — lseek ==== | + | |
| - | + | ||
| - | ==== 8.5 Ejemplo - Una realización de fopen y getc ==== | + | |
| - | + | ||
| - | ==== 8.6 Ejemplo — listado de directorios ==== | + | |
| - | + | ||
| - | ==== 8.7 Ejemplo - Asignador de memoria ==== | + | |
| - | + | ||
| - | ===== Apéndice A: Manual de Referencia ===== | + | |
| - | + | ||
| - | === A1: Introducción === | + | |
| - | + | ||
| - | Este manual describe al lenguaje C tal como se especifica en Draft Proposed American National Standard for Information Systems — Programming Language C, documento número X3J11/ | + | |
| - | + | ||
| - | En su mayor parte, este manual sigue la línea amplia del borrador estándar, que a su vez sigue la de la primera edición de este libro, aunque la organización difiere en el detalle. Excepto por renombrar algunas producciones y porque no se formalizan las definiciones de los componentes léxicos o del preprocesador, | + | |
| - | + | ||
| - | >En este manual, el material comentado se encuentra sangrado y escrito en un tipo más pequeño, como este. A menudo estos comentarios resaltan las formas en las que el estándar ansí de C difiere del lenguaje definido por la primera edición de este libro, o de refinamientos introducidos posteriormente en varios compiladores. | + | |
| - | ===== Apéndice B: Biblioteca Estándar ===== | ||
| - | ===== Apéndice C: Resúmen de Modificaciones ===== | ||
| - | Desde la publicación de la primera edición de este libro, la definición del lenguaje C ha sufrido modificaciones. Casi todas fueron extensiones al lenguaje original, y fueron diseñadas cuidadosamente para permanecer compatibles con la práctica existente; algunas repararon ambigüedades de la descripción original, y otras representan modificaciones de la práctica existente. Muchas de las nuevas características se anunciaron en los documentos que acompañan a los compiladores disponibles de AT&T, y posteriormente se han adoptado por otros proveedores de compiladores del lenguaje C. Recientemente, | ||
| - | Este apéndice resume las diferencias entre el lenguaje definido por la primera edición de este libro, y lo esperado como la definición del estándar final. Trata solamente al lenguaje en sí, no a su entorno ni a su biblioteca; aunque esas son partes importantes del estándar, hay poco con qué compararlas, | ||
| - | * El preprocesamiento está definido más cuidadosamente en el Estándar que en la primera edición, y está extendido: está explícitamete basado en tokens (símbolos); | ||
| - | * El significado mínimo el más pequeño de todos los identificadores internos se incrementó a 31 caracteres; permitido para identificadores con liga externo permanece en 6 letras, sin importar sin son mayúsculas o minúsculas (muchas implantaciones proporcionan más). | ||
| - | * Las secuencias trigráficas introducidas por ?? permiten la representación de caracteres que no se encuentran en algunos conjuntos. Están definidos los escapes para ''#'' | ||
| - | de cadenas que contengan la secuencia ''??'' | ||
| - | * Se introdujeron nuevas palabras reservadas (void, const, volatile, signed. enum). La palabra reservada entry, que nunca se puso en uso, fue retirada. | ||
| - | * Se definen nuevas secuencias de escape para uso dentro de constantes de carácter y cadenas literales. El efecto de seguir ''< | ||
