.. | ||
README.md |
PEC 2
Índice
4. Estructura de memoria
Conceptos básicos de los efectos que produce un programa en la memoria.
4.1. Memoria
Un programa no se ejecuta desde el disco, sino que se carga en la memoria RAM (Random Access Memory). La memoria es un recurso finito y limitado, por lo que es importante gestionarla de forma eficiente. Por este motivo, el SO se encarga de ir moviendo los programas entre la memoria y el disco, pero desde la vista del programador debemos entender que el programa siempre está cargado en memoria.
Cada posición está identificada unívocamente con un valor numérico (su dirección) y tiene capacidad de 8 bytes.
Cuando asignamos un valor (constante o variable) se asigna un rango de direcciones donde pondrá su valor.
4.1.1. Información y espacio
Tipo | Tipo C | Tamaño en bytes | Rango de valores | |
---|---|---|---|---|
Entero | char | 1 | -128 to 127 o 0 to 255 | |
Entero | unsigned char | 1 | 0 a 255 | |
Entero | signed char | 1 | -128 a 127 | |
Entero | int | 2 o 4 | -32,768 a 32,767 o -2,147,483,648 a 2,147,483,647 | |
Entero | unsigned int | 2 o 4 | 0 a 65,535 o 0 a 4,294,967,295 | |
Entero | short | 2 | -32,768 a 32,767 | |
Entero | unsigned short | 2 | 0 a 65,535 | |
Entero | long | 4 | -2,147,483,648 a 2,147,483,647 | |
Entero | unsigned long | 4 | 0 a 4,294,967,295 | |
Real | float | 4 | 1.2E-38 a 3.4E+38 -> 6 decimales | |
Real | double | 8 | 2.3E-308 a 1.7E+308 -> 15 decimales | |
Real | long double | 10 | 3.4E-4932 a 1.1E+4932 -> 19 decimales |