Programación en C: métodos modernos: índice, segunda edición
Capítulo 1 Descripción general del lenguaje C 1
1.1 Historia del lenguaje C 1
1.1.1 Origen 1
1.1.2 Estandarización 1
1.1.3 Lenguaje basado en c 2
1.2 Ventajas y desventajas del lenguaje c 3
1.2.1 Ventajas del lenguaje c 3
1.2.2 Desventajas del lenguaje c 3
1.2.3 Utilice el lenguaje c de manera eficiente 4
Preguntas y respuestas 5
Capítulo 2 Conceptos básicos del lenguaje c Concepto 7
2.1 Escribir un programa en C simple 7
Programa que muestra juegos de palabras 7
2.1.1 Compilación y vinculación 8
2.1.2 Integrado entorno de desarrollo 8
2.2 Forma general de programa simple 9
2.2.1 Instrucción 9
2.2.2 Función 9
2.2. 3 Declaración 10
2.2.4 Cadena de visualización 10
.2.3 Comentario 11
2.4 Variables y asignaciones 12
2.4.1 Tipo 12
2.4.2 Declaración 13
2.4.3 Asignación 13
2.4.4 Mostrar valor de variable 14
Programa para calcular el peso espacial del cuadro 14
2.4.5 Inicialización 15
2.4.6 Mostrar el valor de la expresión 16
2.5 Leer la entrada 16
Programa para calcular el peso espacial de la caja (versión mejorada) 16
2.6 Definir el nombre de la constante 17
Programa para convertir temperatura Fahrenheit a temperatura Celsius 17
2.7 Identificador 18
2.8 Especificaciones de escritura de programas en C 19
Preguntas y respuestas 21
Preguntas de ejercicio 23
Preguntas de programación 24
Capítulo 3 Entrada/Salida formateada 26
3.1 Función Printf 26
3.1.1 Instrucciones de conversión 27
Uso del programa número de formato de función printf 28
3.1.2 Secuencia de escape 28
3.2 función scanf 29
3.2.1 Método de trabajo de la función scanf 30
3.2.2 Caracteres ordinarios en la cadena de formato 31
3.2.3 La función printf y scanf que se confunden fácilmente
Función 32
Las puntuaciones del programa son similares Suma 32
Preguntas y respuestas 33
Preguntas de ejercicio 34
Preguntas de programación 35
Capítulo 4 Expresiones 36
4.1 Operador aritmético 36
Programa para calcular dígito de control del código universal de producto 38
4.2 Operador de asignación 39
4.2.1 Asignación simple 40
4.2.2 valor l 41
4.2.3 asignación compuesta 41
4.3 operador de incremento y operador de decremento 42
4.4 Evaluación de expresiones 43
4.5 Declaración de expresión 45
Preguntas y respuestas 45
Preguntas de ejercicio 47
Preguntas de programación 49
Capítulo 5 Declaración de selección 50
5.1 Expresión lógica 50
5.1.1 Operador relacional 50
5.1.2 Juicio Operadores iguales 51
5.1.3 Operadores lógicos 51
5.2 Enunciados If 52
5.2.1 Enunciados compuestos 53
5.2 .2 el
ver cláusula 53
5.2.3 Declaración if en cascada 54
Programa para calcular la comisión del corredor de bolsa 55
5.2.4 "Left else" Pregunta 56
5.2.5 Expresión condicional 57
5.2.6 Valor booleano 58 en c89
5.2.7 Valor booleano 58 en c99
p>5.3 Declaración de cambio 59
El programa muestra la fecha en formato legal 61
Preguntas y respuestas 62
Preguntas de ejercicio 65
Pregunta de programación 67 p>
Capítulo 6 Bucle 69
6.1 Instrucción While 69
Programa para mostrar la tabla cuadrada 71
Programa para sumar una secuencia 71
6.2 La sentencia do 72
El programa calcula el número de dígitos de un número entero 73
6.3 La sentencia for 73
6.3.1 La sentencia for Modismos de declaración 74
6.3.2 Omitir expresiones en declaraciones for 75
6.3.3 Para declaraciones en c99 75
6.3.4 Operador de coma 76
Programa para mostrar tabla cuadrada (versión mejorada) 77
6.4 Salir del bucle 78
6.4.1 Instrucción de ruptura 78
6.4. Continuar extracto 78
6.4.3 Ir a extracto 79
Liquidación de cuenta del programa 80
6.5 Extracto vacío 81
Preguntas y respuestas 83
Pregunta de ejercicio 84
Pregunta de programación 85
Capítulo 7 Tipos básicos 88
7.1 Tipos de enteros 88
7.1.1 Tipos de enteros en c99 90
7.1.2 Constantes enteras 90
7.1.3 Constantes enteras en c99 91
7.1.4 Desbordamiento de enteros 91
7.1.5 Lectura/escritura de números enteros 91
Suma procesal de matrices (versión mejorada) 92
7.2 Tipos de coma flotante 93
7.2.1 Flotante constantes de punto 94
7.2.2 Lectura/escritura de números de punto flotante 94
7.3 Tipos de caracteres 94
7.3.1 Operaciones con caracteres 95
7.3.2 Caracteres con y sin signo 95
7.3.3 Tipos aritméticos 96
7.3.4 Secuencias de escape 96
7.3.5 Funciones de procesamiento de caracteres 97
7.3.6 Utilice scanf y printf para leer/escribir caracteres 98
7.3.7 Utilice getchar y putchar para leer/escribir
Caracteres 98
Programa para determinar la longitud del mensaje 99
7.4 Conversión de tipos 100
7.4.1 Conversión aritmética común 101
7.4. Conversión durante la asignación 102<. /p>
7.4.3 Conversión implícita en c99 103
7.4.4 Conversión de tipo forzada 103
7.5 Definición de tipo 105
7.5.1 Ventajas de definición de tipo 105
7.5.2 Definición de tipo y portabilidad 105
7.6 tamaño del operador 106
Preguntas y respuestas 107
Preguntas de ejercicio 109
Preguntas de programación 110
Capítulo 8 Matrices 113
8.1 Matrices unidimensionales 113
p>8.1.1 Subíndice de matriz 113
Secuencia del programa inversa 115
8.1.2 Inicialización de matriz 115
8.1.3 Especificar la fórmula de inicialización 116
El programa comprueba si hay números repetidos 116 en el número
8.1.4 Uso del operador sizeof en arrays 117
Programa para calcular el interés 118
8.2 Arreglos multidimensionales 119
8.2.1 Inicialización de multi- matrices dimensionales 120
8.2.2 Matriz constante 121
Tratamiento procesal 121
8.3 Matriz de longitud variable 122 en c99
Preguntas y respuestas 123
Pregunta de ejercicio 124
Pregunta de programación 125
Capítulo 9 Función 129
9.1 Definición y llamada de la función 129
Programa Calcula el promedio 129
El programa muestra la cuenta regresiva 130
El programa muestra juegos de palabras (versión mejorada) 131
9.1.1 Definición de función 132 p>
9.1.2 Llamada a función 133
Programa para determinar números primos 134
9.2 Declaración de función 135
9.3 Parámetros reales 136
9.3.1. Conversión de parámetros reales 137
9.3.2 Parámetros reales de tipo de matriz 138
9.3.3 Parámetros formales de matriz de longitud variable 140
9.3.4 En parámetros de matriz Usado en declaraciones
estático 141
9.3.5 Literales compuestos 141
9.4 Declaración de retorno 142
9.5 Terminación del programa 143 p>
9.6 Recursión 144
Clasificación rápida del programa 146
Preguntas y respuestas 147
Preguntas de ejercicio 150
Preguntas de programación 153
Capítulo 10 Estructura del programa 155
10.1 Variables locales 155
10.1.1 Variables locales estáticas 156
10.1.2 Parámetros formales 156
10.2 Variables externas 156
10.2.1 Ejemplo: uso de variables externas para implementar la pila 156
10.2.2 Las ventajas y desventajas de las variables externas variables 157
Número de estimación del programa 158
10.3 Bloque de programa 161
10.4 Alcance 162
10.5 Compilación del programa c 163
Programa de clasificación de una mano de cartas 163
Preguntas y respuestas 169
Preguntas de ejercicio 169
Preguntas de programación 170
Capítulo 11 Punteros 172
p>11.1 Variable de puntero 172
11.2 Operador de dirección y operador de direccionamiento indirecto 173
11.2.1 Operador de dirección 173
11.2.2 Operador de direccionamiento indirecto 174
11.3 Asignación de puntero 174
11.4 Puntero como parámetro 176
El programa encuentra el elemento más grande y el elemento más pequeño en la matriz /p>
Elementos pequeños 177
11.5 Punteros como valores de retorno 179
Preguntas y respuestas 180
Preguntas de ejercicio 181
Preguntas de programación 182
Capítulo 12 Punteros y matrices 184
12.1 Operaciones aritméticas con punteros 184
12.1.1 Sumar punteros a números enteros 185
12.1.2 Resta de puntero de un número entero 185
12.1.3 Resta de dos punteros 186
12.1.4 Comparación de punteros 186
12.1
.5 Punteros a constantes compuestas 186
12.2 Punteros utilizados para el procesamiento de matrices 186
12.3 Uso de nombres de matrices como punteros 188
Procedimiento inverso de matriz (versión mejorada)) 189
12.3.1 Parámetros reales del tipo de matriz (versión mejorada) 189
12.3.2 Usar punteros como nombres de matrices 191
12.4 Punteros y matrices multidimensionales 191
12.4.1 Procesamiento de elementos de arreglos multidimensionales 191
12.4.2 Procesamiento de filas de arreglos multidimensionales 192
12.4.3 Procesamiento de columnas de arreglos multidimensionales 192
p>
12.4.4 Usar nombres de matrices multidimensionales como punteros 192
12.5 Punteros y matrices de longitud variable en c99 193
Preguntas y respuestas 194
Ejercicio 195
Pregunta de programación 197
Capítulo 13 Cadena 198
13.1 Literal de cadena 198
13.1.1 Secuencias de escape de caracteres en literales de cadena 198
13.1.2 Continuación de literales de cadena 199
13.1.3 Cómo almacenar literales de cadena 199
13.1 .4 Operaciones de literales de cadena 200
13.1.5 Literales de cadena y constantes de caracteres 200
13.2 Variables de cadena 200
13.2.1 Variables de cadena de inicialización 201
13.2.2 Arreglos de caracteres y punteros de caracteres 202
13.3 Lectura y escritura de cadenas 203
13.3.1 Uso de la función printf y función put
Escribir cadena 203
13.3.2 Utilice la función scanf y obtenga la función para leer
Cadena 203
13.3.3 Uno por uno Lectura de caracteres cadena 204
13.4 Acceso a caracteres en cadena 205
13.5 Usando la biblioteca de cadenas del lenguaje c 206
13.5.1 función strcpy 207
13.5.2 función strlen 208
13.5.3 función strcat 208
13.5.4 función strcmp 209
El programa muestra la lista de recordatorios de un mes 209
13.6 Modismos de cadena 211
13.6.1 Buscando el final de una cadena 211
13.6.2 Copiando una cadena 213
13.7 Matriz de cadenas 214
Programa a verificar nombres de planetas 217
Preguntas y respuestas 218
Preguntas de ejercicio 220
Pregunta de programación 222
Capítulo 14 Preprocesador 225
14.1 Principio de funcionamiento del preprocesador 225
14.2 Instrucciones de preprocesamiento 227
14.3 Definición de macro 227
14.3.1 Macro simple 227
14.3. 2 Macro con parámetros 229
14.3.3 #Operator 231
14.3.4 ##Operator 231
14.3.5 Propiedades generales de las macros 232
14.3.6 Paréntesis en definiciones de macros 233
14.3.7 Crear macros más largas 233
14.3.8 Macros predefinidas 234
14.3.9 Nuevo macros predefinidas 235 en c99
14.3.10 Parámetro de macro vacía 236
14.3.11 Macro con número variable de parámetros 236
14.3.
12 __func__ identificador 237
14.4 Compilación condicional 237
14.4.1 directiva #if y directiva #endif 238
14.4.2 operador definido 238
14.4.3 Directiva #ifdef y #ifndef
Directiva 239
14.4.4 Directiva #elif y directiva #else 239
14.4 .5 Usando compilación condicional 240
14.5 Otras directivas 240
14.5.1 Directiva #error 240
14.5.2 Directiva #line 241
14.5 .3 Directiva #pragma 242
14.5.4 _operador pragma 242
Preguntas y respuestas 243
Preguntas de ejercicio 245
Capítulo 15 Escritura Programas grandes 248
15.1 Archivos fuente 248
15.2 Archivos de encabezado 249
15.2.1 Directiva #include 249
15.2.2 * **Compartir definiciones de macros y definiciones de tipos 250
15.2.3 ***Compartir prototipos de funciones 251
15.2.4 ***Compartir declaraciones de variables 252 p>
15.2.5 Incluye anidados 253
15.2.6 Proteger archivos de encabezado 253
15.2.7 Directivas #error en archivos de encabezado 254
15.3 Divida el programa en múltiples archivos 254
Formato de texto del programa 255
15.4 Crear programas de múltiples archivos 260
15.4.1 Makefile 260
15.4.2 Error 262 durante la vinculación
15.4.3 Reconstrucción del programa 262
15.4.4 Definición de macros fuera del programa 264
Preguntas y respuestas 264
Preguntas del ejercicio 265
Preguntas de programación 266
Capítulo 16 Estructuras, uniones y enumeraciones 267
16.1 Variables estructurales 267
16.1.1 Declaración de variables de estructura 267
16.1.2 Inicialización de variables de estructura 269
16.1.3 Inicialización especificada 269
16.1.4 Operaciones sobre estructuras 270
16.2 Tipos de estructura 270
16.2.1 Declaración de etiquetas de estructura 271
16.2.2 Definición de tipos de estructura 272
16.2.3 Estructuras como parámetros y valores de retorno 272
16.2.4 Literales compuestos 273
16.3 Arreglos y estructuras anidados 274
16.3.1 Estructura anidada 274
16.3.2 Matriz de estructura 274
16.3.3 Inicialización de matriz de estructura 275
El programa mantiene la base de datos de piezas 275
16.4 Unión 281
16.4.1 Usar unión para ahorrar espacio 282
16.4.2 Usar unión para construir datos mixtos
Estructura 284
16.4.3 Agregar "marca" campos" a uniones 284
16.5 Enumeración 285
16.5.1 Etiquetas de enumeración y nombres de tipos 286
16.5.2 Enumeraciones como números enteros 286
16.5.3 Usar enumeraciones para declarar "campos marcados" 286
Preguntas y respuestas 287
Ejercicio 289
Preguntas de programación
293
Capítulo 17 Aplicaciones avanzadas de punteros 294
17.1 Asignación dinámica de almacenamiento 294
17.1.1 Función de asignación de memoria 294
17.1. 2 Puntero nulo 295
17.2 Asignación dinámica de cadenas 296
17.2.1 Uso de la función malloc para asignar memoria para cadenas
296
17.2.2 Uso dinámico en funciones de cadenas
Asignación de almacenamiento 296
17.2.3 Asignación dinámica de matrices de cadenas 297
El programa muestra la lista de recordatorios de un mes p>
(Versión mejorada) 297
17.3 Asignar matrices dinámicamente 299
17.3.1 Usar la función malloc para asignar almacenamiento para la matriz
Espacio 299
17.3.2 función calloc 300
17.3.3 función realloc 300
17.4 Liberar espacio de almacenamiento 301
17.4.1 libre función 301
17.4.2 Problema de "puntero colgante" 301
17.5 Lista enlazada 302
17.5.1 Declarando el tipo de nodo 302
17.5.2 Crear nodo 303
17.5.3 -) operador 303
17.5.4 Insertar nodo 304 al principio de la lista enlazada
17.5 .5 Buscar lista enlazada 306
17.5.6 Eliminar nodos de la lista enlazada 307
17.5.7 Lista enlazada ordenada 308
Base de datos de piezas de mantenimiento del programa (versión mejorada)) 309
17.6 Puntero a puntero 313
17.7 Puntero a función 314
17.7.1 Puntero de función como parámetro 314
17.7.2 Función qsort 314
17.7.3 Otros usos de punteros de función 316
Tabla de funciones trigonométricas de secuencia de procedimientos 317
17.8 Punteros restringidos 318
17.9 Miembros de matriz flexible 319
Preguntas y respuestas 320
Preguntas de ejercicio 323
Preguntas de programación 325
Declaración del Capítulo 18 327
18.1 Sintaxis de declaración 327
18.2 Tipo de almacenamiento 328
18.2.1 Propiedades de las variables 328
18.2.2 auto Tipo de almacenamiento 329 p>
18.2.3 tipo de almacenamiento estático 329
18.2.4 tipo de almacenamiento externo 330
18.2.5 tipo de almacenamiento de registros 331
18.2.6 Tipo de almacenamiento de función 332
18.2.7 Resumen 332
18.3 Calificador de tipo 333
18.4 Declarador 334
18.4.1 Interpretación de declaraciones complejas 335
18.4.2 Usar definiciones de tipos para simplificar declaraciones 336
18.5 Inicializadores 336
18.6 Funciones en línea 337
18.6.1 En línea definición 338
18.6.2 Restricciones en funciones en línea 339
18.6.3 Uso de funciones en línea en gcc 339
p>Preguntas y respuestas 339
Ejercicios 342
Capítulo 19 Programación 345
19.1 Módulo 345
19.1.1 Cohesión y acoplamiento 347
19.1.2 Tipos de módulos 347
19.2 Ocultamiento de información 347
19.3 Tipos de datos abstractos 350
19.3.1 Encapsulación 351
19.3.2 Tipos incompletos 351
19.4 Tipos de datos abstractos de pila 352
19.4.1 Definición de interfaces para tipos de datos abstractos de pila 352
19.4.2 Usar matrices de longitud fija para implementar datos abstractos de la pila
Tipo 353
19.4.3 Cambiar los datos en el tipo de datos abstractos de la pila
El tipo del elemento 354
19.4.4 Usar matrices dinámicas para implementar datos abstractos de pila
Tipo 355
19.4.5 Usar listas vinculadas para implementar tipos de datos abstractos de pila 357
19.5 Problemas de diseño de tipos de datos abstractos 359
19.5.1 Convenciones de nomenclatura 359
19.5.2 Manejo de errores 359
19.5 .3 Tipos de datos abstractos universales 359
19.5.4 Tipos de datos abstractos en nuevos lenguajes 360
Preguntas y respuestas 360
Preguntas de ejercicio 361
Preguntas de programación 362
p>Capítulo 20 Programación de bajo nivel 363
20.1 Operador de bits 363
20.1.1 Operador de turnos 363
20.1.2 Presione Operador de negación bit a bit, operador AND bit a bit, operador XOR bit a bit y operador OR bit a bit 364
20.1.3 Uso de operadores bit a bit para acceder a los bits 365
20.1. 4 Uso de operadores bit a bit para acceder a campos de bits 366
Cifrado xor procesal 366
20.2 Campos de bits en estructuras 367
20.3 Otras tecnologías subyacentes 369
20.3.1 Definir tipos dependientes de la máquina 369
20.3.2 Usar uniones para proporcionar múltiples perspectivas sobre los datos 370
20.3.3 Usar punteros como direcciones 371
Programa de visualización de unidades de memoria 371
20.3.4 Calificadores de tipo volátil 373
Preguntas y respuestas 374
Preguntas de ejercicio 374
Preguntas de programación 376 p>
Capítulo 21 Biblioteca estándar 377
21.1 Uso de la biblioteca estándar 377
21.1.1 Restricciones sobre los nombres utilizados en la biblioteca estándar 377
21.1 .2 Funciones ocultas usando macros 378
21.2 Descripción general de la biblioteca estándar c89 378
21.3 Actualización de la biblioteca estándar C99 380
21.4 (stddef.h): Definiciones comunes 381
21.5 (stdbool.h): tipos y valores booleanos 381
Preguntas y respuestas 382
Preguntas de ejercicio 382
Preguntas de programación 383
Capítulo 22 Entrada/Salida 384
22.1 Flujo 384
22.1.1 Puntero de archivo 385
22.1.2 Flujo estándar y redirección 385
22.1.3 Archivo de texto y archivo binario 385
22.2 Operaciones con archivos 386
22.2.1 Abrir archivos 386
22.2. 2 modos 387
22.2.3 Cerrar archivos 388
22.2.4 Adjuntar un archivo a una secuencia abierta 389
22.2.5 Obtener el nombre del archivo del línea de comando 389
El programa comprueba si el archivo se puede abrir 389
p>
>22.2.6 Archivos temporales 390
22.2.7 Almacenamiento en búfer de archivos 391
22.2.8 Otras operaciones con archivos 392
22.3 Entrada/salida formateada 393
22.3.1 …función printf 393
22.3.2…descripción de conversión printf 393
22.3.3 Explicación de C99 de…conversión printf
Modificación 395
22.3.4 …ejemplo de descripción de conversión printf 396
22.3.5 …función scanf 398
22.3.6 …cadena de formato scanf 398
22.3.7 … descripción de conversión scanf 398
22.3.8 Cambio de C99 a… descripción de conversión scanf
400
22.3 .9 Ejemplo de Scanf 400
22.3.10 Detección de fin de archivo y condiciones de error 401
22.4 Entrada/salida de caracteres 403
22.4.1 Función de salida 403
22.4.2 Función de entrada 403
Archivo de copia de programa 404
22.5 Entrada/salida de línea 405
22.5.1 Función de salida 405
22.5.2 Función de entrada 406
22.6 Entrada/salida de bloque 406
22.7 Posicionamiento de archivo 407
El programa modifica el archivo de registro de pieza 409
22.8 Entrada/salida de cadena 409
22.8.1 Función de salida 410
22.8.2 Función de entrada 410
Preguntas y respuestas 411
Preguntas de ejercicio 414
Preguntas de programación 416
Capítulo 23 Soporte de biblioteca para datos numéricos y de caracteres 419
23.1 (float.h): Características de los tipos de punto flotante 419
23.2 (limits.h): Tamaño de tipos de enteros 421
23.3 (math.h): Cálculos matemáticos (c89) 422
23.3.1 Error 422
23.3.2 Funciones trigonométricas 422
23.3.3 Funciones hiperbólicas 423
23.3.4 Funciones exponenciales y logarítmicas 423
23.3.5 Función de potencia 424
23.3.6 Función de redondeo más cercano, función de valor absoluto
y función de resto 424
23.4 (math.h): Cálculos matemáticos (c99) 425
23.4.1 Estándar de coma flotante IEEE 425
23.4.2 Tipo 426
23.4.3 Macro 426
23.4.4 Error 426
23.4.5 Función 427
23.4.6 Macro de clasificación 427
23.4.7 Funciones trigonométricas 428
23.4.8 Funciones hiperbólicas 428
23.4.9 Funciones exponenciales y logarítmicas 429
23.4.10 Función de potencia y función de valor absoluto 430
23.4.11 Función de error y función gamma 430
23.4.12 Función de redondeo al entero más cercano 431
23.4.13 Tomando cofunción 432
23.4.14 Función de operación 432
23.4.15 Función de máximo, función de mínimo
y función de diferencia positiva 433
23.4.16 Multiplicación en coma flotante y suma 433
>23.4.17 Macro de comparación 434
23.5 (ctype.h): Procesamiento de caracteres 434
23.5.1 Función de clasificación de caracteres 435
Función de clasificación de caracteres de prueba del programa 436
23.5.2 Función de mapeo de casos de caracteres 437
Función de mapeo de casos de prueba del programa 437
23.6 (string.h): Procesamiento de cadenas 437
23.6.1 Función de copia 437
23.6.2 Función de empalme 438
23.6.3 Función de comparación 439
23.6.4 Función de búsqueda 440 p>
23.6.5 Otras funciones 442
Preguntas y respuestas 442
Preguntas de ejercicio 443
Preguntas de programación 444
Capítulo 24 Manejo de errores 446
24.1 (assert.h): Diagnóstico 446
24.2 (errno.h): Error 447
24.3 (señal .h): Procesamiento de señal 448
24.3.1 Macro de señal 449
24.3.2 Función de señal 449
24.3.3 Función de procesamiento de señal predefinida 450
24.3.4 Función de elevación 450
Señal de prueba del programa 451
24.4 (setjmp.h): Salto no local 452
Prueba del programa setjmp y longjmp 452
Preguntas y respuestas 453
Preguntas de ejercicio 454
Capítulo 25 Características internacionales 456
25.1 ( locale.h): localización 456
25.1.1 categoría 456
25.1.2 función setlocale 457
25.1.3 función localeconv 458
25.2 Caracteres multibyte y anchos 461
25.2.1 Caracteres multibyte 461
25.2.2 Caracteres anchos 461
25.2.3 Juegos de caracteres Unicode y universales 462
25.2 .4 Codificación Unicode 462
25.2.5 Funciones de conversión de caracteres multibyte/anchos 463
25.2.6 Funciones de conversión de cadenas multibyte/anchos 465
25.3 Doble y triple caracteres 465
25.3.1 Caracteres triples 465
25.3.2 Caracteres dobles 466
25.3.3 (iso646.h): Reemplazo ortográfico 467
25.4 Nombre de carácter universal 467
25.5 (wchar.h): Caracteres anchos y multibyte extendidos
Utilidad 467
25.5.1 Tendencia de flujo 468
25.5.2 Formato de entrada/salida de caracteres anchos
Funciones 468
25.5.3 Funciones de entrada/salida de caracteres anchos 470
25.5 .4 Utilidades generales de cadenas anchas 471
25.5.5 Funciones de conversión de tiempo de caracteres anchos 474
25.5.6 Conversión extendida de caracteres multibyte/anchos
Utilidad 474 p>
25.6 (wctype.h): clasificación de caracteres amplios y herramientas de utilidad de mapeo 477
25.6.1 Funciones de clasificación de caracteres amplios 477
25.6.2 Funciones extensibles de clasificación de caracteres amplios 478
25.6.3 Función de mapeo de mayúsculas y minúsculas de caracteres anchos 478
25
.6.4 Mapeo extensible de casos de caracteres amplios
Función 478
Preguntas y respuestas 479
Ejercicio 479
Pregunta de programación 480
Capítulo 26 Otras funciones de la biblioteca 482
26.1 (stdarg.h): Parámetros variables 482
26.1.1 Llamar con una lista de parámetros variables
Función 483
26.1.2 v…función printf 484
26.1.3 v…función scanf 485
26.2 (stdlib. h): Herramientas de utilidad general 485
26.2.1 Función de conversión numérica 485
Función de conversión numérica de prueba de programa 486
26.2.2 Función de generación de secuencia pseudoaleatoria 488
Prueba de programa función de generación de secuencia pseudoaleatoria 488
26.2.3 Comunicación con el medio ambiente 489
26.2.4 Utilidades de búsqueda y clasificación 490
Programa para determinar el kilometraje aéreo 491
26.2.5 Función aritmética de enteros 492
26.3 (hora.h): fecha y hora 492
26.3 .1 Función de procesamiento de tiempo 493
26.3.2 Función de conversión de hora 495
Fecha y hora de visualización del programa 498
Preguntas y respuestas 500
Pregunta de ejercicio 501
Programación pregunta 502
Capítulo 27 Nuevo soporte de c99 para cálculos matemáticos 503
27.1 (stdint.h): tipo entero 503
27.1.1 (stdint.h) tipo 503
27.1.2 Restricciones sobre tipos de enteros de ancho especificado 504
27.1.3 Restricciones sobre otros tipos de enteros Restricción 505
27.1.4 Macros para constantes enteras 505
27.2 (inttypes.h): Formato de tipos enteros
Conversión 506
27.2.1 Macro 506 para especificadores de formato
27.2.2 Función 507 para tipos enteros de ancho máximo
27.3 Números complejos 508
27.3.1 Definición de números complejos 508
27.3.2 Operaciones aritméticas de números complejos 509
27.3.3 Tipos de números complejos en c99 509
27.3.4 Operaciones con números complejos 510
27.3.5 Reglas de conversión de tipos de números complejos 510
27.4 (complex.h): Operaciones aritméticas con números complejos 511
27.4.1 (complex.h) Macro 511
27.4.2 compilación cx_limited_range
Indicación 512
27.4.3 (complex.h) Función 512
p>27.4.4 Funciones trigonométricas 512
27.4.5 Funciones hiperbólicas 513
27.4.6 Funciones exponenciales y logarítmicas 514
27.4 .7 Función de potencia y función de valor absoluto 514
27.4.8 Función de operación 514
Programa para encontrar las raíces de la ecuación cuadrática 515
27.5 (tgmath.h): Matemáticas genéricas 515
27.5.1 Macros genéricas 516
27.5 .2 Llamar a macros genéricas 517
27.6 (fenv.h): Entorno de punto flotante 518
27.6.1 Indicadores de estado y modos de control de punto flotante 518
<p>27.6.2 (fenv.h) macro 519
27.6.3 indicador de compilación fenv_access 519
27.6.4 Función de excepción de punto flotante 520
27.6. 5. Función de redondeo 520
27.6.6 Función de entorno 521
Preguntas y respuestas 521
Preguntas de ejercicio 522
Preguntas de programación 523
Apéndice a operadores de lenguaje c 524
Apéndice b Comparación entre c99 y c89 525
Apéndice c Comparación entre c89 y c 529 clásico
Apéndice d Estándar función de biblioteca 532
Apéndice y juego de caracteres ascii 569
Referencia 570
Índice 573