Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Pol23 en 24 Septiembre 2018, 10:14 am



Título: Significado instrucciones
Publicado por: Pol23 en 24 Septiembre 2018, 10:14 am
Tengo varias imágenes de código y tengo que identificar que significan ciertas líneas de código. Si fuera necesario os puedo adjuntar las imágenes... eso sin problema.

En el primero encuentro:
#ifndef __common_h__
#define __common_h__
.....
#endif

ifndef creo que se refiere a que antes de ejecutar un programa, verificará que una condición es cierta, verdad? pero qué es common_h?
define: define un nombre simbólico como una cadena de caracteres? es lo que he leído pero no lo entiendo
endif: supongo que termina la condición del ifndef

En el segundo, hay varias líneas pero no sé que significa:
#include "common.h", todo lo que empieza por include son librerías' normalmente lo que viene después del include lo he visto siempre entre <> pero en este caso son "..."

En el tercero, tengo un Makefile con el siguiente código:
  all: p1

  clean:
     rm -f pl
p1: p1.c common.h
    gcc -o pl pl.c -Wall


¿qué significa la línea p1: p1.c common.h?

Gracias





Título: Re: Significado instrucciones
Publicado por: MAFUS en 24 Septiembre 2018, 12:25 pm
Te podría dar explicaciones individuales de cada cosa pero el tema es largo y hay que verlo en su conjunto para entenderlo.

1. ifndef es directiva del preprocesador. Si no se ha definido el símbolo que le sigue se ejecutará todo lo que sigue hasta el endif.
define define el símbolo que le sigue. Esto son guardas de preprocesador e impiden que el archivo se incluya dos veces. En C está prohibido declarar dos veces el mismo objeto.

2. Cuándo un archivo incluye está entre comillas dobles el preprocesador lo buscará en la ruta actual del archivo.c. Si está entre ángulos < > el archivo es buscado en los directorios por defecto de las librerías.

Eso directivas del lenguaje makefile y es todo un mundo. Tu ejemplo dice:
Para construir p1 mira si p1.c y common.h han sido actualizados.
La línea que hay después, que es una sentencia bash, hará compilar p1.c


Título: Re: Significado instrucciones
Publicado por: Pol23 en 24 Septiembre 2018, 17:58 pm
Gracias Mafus! como poco me da pistas para buscar más a fondo