[Tutorial C] V - Preprocesado

Ver el tema anterior Ver el tema siguiente Ir abajo

[Tutorial C] V - Preprocesado

Mensaje  HarZe el Jue Jun 25, 2009 3:24 pm

Preprocesado

Son instrucciones para el compilador, para facilitarnos la vida. Si quieres hacer tus propias librerías o cabeceras ( headers, los archivos del .h ), necesitas saber esto, y sino también.

Entre los #include, y el código en sí, es donde colocamos el preprocesado. Tiene una función sencilla: usar macros en función del código. Explicaré todo el preprocesado palabra a palabra:

#define
es un macrosustitutivo, sirve para sustituir un código real por otro más corto decidido por ti. La estructura es:
Código:
#define macro código_real
El código real puede tener varias líneas si pones esta barra: \ . Por cada línea nueva. Y además de todo lo anterior, se puede sustituir una variable interna de macro con el código real, esto se entiende con un ejemplo:
Código:
#define cubo(num) (num*num*num)
...
int x = cubo(3);
Y x será 27.

#error, provoca que haya un error en el compilador. La estructura es:
Código:
#error mensaje_de_error

#include, es parte también del prerocesado, siempre suele ser lo primero que se pone, sirve para añadir al programa una libreria, código fuente o más partes de tu programa. La estructura es:
Código:
#include <nombre_archivo.extension>
Pero si tu creas tu propia librería o adquieres una que no instalada en el compilador. Deberás poner la librería (codigo fuente de la cabeza, en .c o .a) y la cabecera ( la de .h ) junto al código del programa, y debe ser así el #include:
Código:
#include "tupropialibreria.h"
Siendo a la vez un ejemplo.

#if , #elif y #endif, son condicionales para el preprocesado. Ahora se te hará raro pensar que hasta eso tenga condiciones, pero tiene sus motivos, pero ahora no es el momento de entrar en ese tema. Simplemente decir que su estructura es:
Código:
#if valor_lógico
  sentencias...
#elif valor_lógico_opcional
  sentencias...
#endif
Se usa #endif al no poder usar llaves para agrupar código. Se pueden usar #elif ( elif es else if contraido ) tantos como quieras, si omites el valor lógico actuará como un else. Los mejores ejemplos para ésto son las librerias ya creada.

#ifdef y #ifndef, sirven como condicionantes, y la condicion es si existe un macro o no. Tampoco le encontrarás utilidad ahora, pero como todo, se inventó por algo. La estructura es:
Código:
#ifdef nombre_macro
  sententcias...
#endif
Código:
#ifndef nombre_macro
  sententcias...
#endif
En el primer caso, si estaba definido ese macro, sucede lo de dentro. En el segundo caso, solo sucede si no estaba definido.

#undef, hace la función contraria a #define, elimina un macro. Estructura:
Código:
#undef nombre_macro

Quedan #line y #pragma, pero esos son ya para hacer prácticamente de un compilador otro lenguaje, no es ahora el momento de explicarlo.

HarZe
WebMaster & Desarrollador

Cantidad de envíos : 58
Fecha de inscripción : 21/06/2009
Edad : 24

Ver perfil de usuario http://opengl-esp.superforo.net

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.