logo

Proceso de compilación en c

¿Qué es una recopilación?

La compilación es un proceso de conversión del código fuente en código objeto. Se hace con la ayuda del compilador. El compilador verifica el código fuente en busca de errores sintácticos o estructurales y, si el código fuente está libre de errores, genera el código objeto.

Proceso de compilación en c

El proceso de compilación de c convierte el código fuente tomado como entrada en código objeto o código de máquina. El proceso de compilación se puede dividir en cuatro pasos, es decir, preprocesamiento, compilación, ensamblaje y vinculación.

El preprocesador toma el código fuente como entrada y elimina todos los comentarios del código fuente. El preprocesador toma la directiva del preprocesador y la interpreta. Por ejemplo, si , la directiva está disponible en el programa, luego el preprocesador interpreta la directiva y reemplaza esta directiva con el contenido de la 'stdio.h' archivo.

Las siguientes son las fases por las que pasa nuestro programa antes de transformarse en un formato ejecutable:

convertir int a cadena java
    Preprocesador Compilador Ensamblador Enlazador
Proceso de compilación en c

Preprocesador

El código fuente es el código que está escrito en un editor de texto y el archivo de código fuente tiene la extensión '.c'. Este código fuente se pasa primero al preprocesador y luego el preprocesador expande este código. Después de expandir el código, el código expandido se pasa al compilador.

Compilador

El código expandido por el preprocesador se pasa al compilador. El compilador convierte este código en código ensamblador. O podemos decir que el compilador de C convierte el código preprocesado en código ensamblador.

Ensamblador

El código ensamblador se convierte en código objeto mediante un ensamblador. El nombre del archivo objeto generado por el ensamblador es el mismo que el del archivo fuente. La extensión del archivo objeto en DOS es '.obj' y en UNIX, la extensión es 'o'. Si el nombre del archivo fuente es 'Hola C', entonces el nombre del archivo objeto sería 'hello.obj'.

Enlazador

Principalmente, todos los programas escritos en C utilizan funciones de biblioteca. Estas funciones de biblioteca están precompiladas y el código objeto de estos archivos de biblioteca se almacena con la extensión '.lib' (o '.a'). El funcionamiento principal del vinculador es combinar el código objeto de los archivos de la biblioteca con el código objeto de nuestro programa. En ocasiones se presenta la situación cuando nuestro programa hace referencia a las funciones definidas en otros archivos; Entonces el enlazador juega un papel muy importante en esto. Vincula el código objeto de estos archivos a nuestro programa. Por lo tanto, concluimos que el trabajo del vinculador es vincular el código objeto de nuestro programa con el código objeto de los archivos de la biblioteca y otros archivos. La salida del vinculador es el archivo ejecutable. El nombre del archivo ejecutable es el mismo que el del archivo fuente, pero solo difiere en sus extensiones. En DOS, la extensión del archivo ejecutable es '.exe' y en UNIX, el archivo ejecutable puede denominarse 'a.out'. Por ejemplo, si utilizamos la función printf() en un programa, el vinculador agrega su código asociado en un archivo de salida.

java si declaración

Entendamos a través de un ejemplo.

Hola C

 #include int main() { printf('Hello javaTpoint'); return 0; } 

Ahora, crearemos un diagrama de flujo del programa anterior:

pitón camelcase
Proceso de compilación en c

En el diagrama de flujo anterior, se siguen los siguientes pasos para ejecutar un programa:

  • En primer lugar, el archivo de entrada, es decir, Hola C, se pasa al preprocesador, y el preprocesador convierte el código fuente en código fuente expandido. La extensión del código fuente ampliado sería Hola yo.
  • El código fuente expandido se pasa al compilador, y el compilador convierte este código fuente expandido en código ensamblador. La extensión del código ensamblador sería hola
  • Este código ensamblador luego se envía al ensamblador, que convierte el código ensamblador en código objeto.
  • Después de la creación de un código objeto, el vinculador crea el archivo ejecutable. Luego, el cargador cargará el archivo ejecutable para la ejecución.