Red de conocimiento informático - Computadora portátil - ¿Qué significa la pila de lenguaje c?

¿Qué significa la pila de lenguaje c?

1. Asignación de espacio de pila

Pila (sistema operativo): asignada automáticamente por el sistema operativo, utilizada para liberar y almacenar valores de parámetros de funciones, valores de variables locales, etc. Su funcionamiento es similar a una pila en una estructura de datos.

Montón (OS): generalmente asignado por el programador. Si el programador no lo libera, el sistema operativo puede reclamarlo al final del programa. Su método de asignación es similar a una lista vinculada. .

2. Caché de pila

La pila utiliza el caché de primer nivel. Generalmente se llama en el espacio de almacenamiento y se libera inmediatamente después de la llamada.

El montón se almacena en la caché de segundo nivel y su ciclo de vida está determinado por el algoritmo de recolección de basura de la máquina virtual (los objetos no se pueden reciclar una vez que se vuelven huérfanos). Por lo tanto, llamar a estos objetos es relativamente lento.

3. Comparación de eficiencia

El sistema asigna automáticamente la pila y es más rápida. Pero el programador no tiene control.

El montón se asigna desde la memoria nueva, que generalmente es más lenta y propensa a la fragmentación de la memoria, pero es la más conveniente.

4. Contenido almacenado

Pila: En una llamada a función, en la mayoría de los compiladores de C, los parámetros ingresan a la pila de derecha a izquierda, y luego las variables locales de la función. Tenga en cuenta que las variables estáticas no van a la pila.

Cuando finaliza la llamada a la función, las variables locales primero abandonan la pila, luego los parámetros y finalmente el puntero superior de la pila apunta a la dirección de retorno de la función, que es la dirección de la siguiente instrucción. en la función principal El programa comienza desde este punto Sigue ejecutándose.

Montón: un byte en el encabezado del montón generalmente indica el tamaño del montón. El contenido específico del montón lo organiza el programador.

Información ampliada:

Introducción

En aplicaciones de microcontroladores, la pila es un área de almacenamiento especial. La pila es parte del espacio RAM y se utiliza para funciones. Llamadas, interrumpe el cambio para guardar y restaurar datos en tiempo real.

Los objetos en la pila tienen la propiedad de que el primer objeto que se coloca en la pila es siempre el último en ser retirado. Esta propiedad generalmente se llama FILO-First-In/Last-Out). Hay muchas operaciones definidas en la pila, las dos más importantes son PUSH y POP. PUSH: el puntero de la pila (SP) se incrementa en 1 y se agrega un elemento en la parte superior de la pila.

La operación POP (pop) es la opuesta. Al extraer la pila, el contenido de la unidad de RAM interna que representa el SP se coloca en la unidad direccionada directamente (ubicación de destino) y luego en el puntero de la pila (SP). ) se resta por 1..... Estas dos operaciones implementan la inserción y eliminación de elementos de datos.

Enciclopedia Baidu - Pila