Red de conocimiento informático - Computadora portátil - Programación en C: métodos modernos: índice, segunda edición

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

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

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

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

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

(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

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

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

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

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