Foros del Web » Programación para mayores de 30 ;) » C/C++ »

COMO UTILIZAR #error y #pragma

Estas en el tema de COMO UTILIZAR #error y #pragma en el foro de C/C++ en Foros del Web. hola a todos, en que parte del programa puedo utilizar error y pragma??? y como van sus argumentos, que son tokens, claro es que no ...
  #1 (permalink)  
Antiguo 04/08/2010, 14:59
 
Fecha de Ingreso: agosto-2010
Mensajes: 153
Antigüedad: 13 años, 8 meses
Puntos: 1
COMO UTILIZAR #error y #pragma

hola a todos, en que parte del programa puedo utilizar error y pragma??? y como van sus argumentos, que son tokens, claro es que no me funciona gracias

Código C++:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main ()
  4.  
  5. {
  6.  
  7. #error 1- error de programa
  8. #pragma 1- hola
  9.  
  10. return 0;
  11.  
  12. }
  #2 (permalink)  
Antiguo 04/08/2010, 15:15
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: COMO UTILIZAR #error y #pragma

Código C++:
Ver original
  1. #define N 2
  2.  
  3. #if N == 2
  4. #error No deberias ser dos!!
  5. #endif
  6.  
  7. int main()
  8. {
  9. return 0;
  10. }

#error se utiliza para generar un error y parar la compilacion, en cambio el pragma se utiliza para dar un warning.

Por ejemplo vos que usas tubo podes ver si estas en borland o no. Y ocurrira un error en caso negativo.

http://www.tenouk.com/Module10a.html

Acostumbrate a buscar un poco de material en la web. Esto lo acabo de aprender para explicarte!
  #3 (permalink)  
Antiguo 04/08/2010, 15:20
 
Fecha de Ingreso: agosto-2010
Mensajes: 153
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: COMO UTILIZAR #error y #pragma

ok gracias ya me sacaste de la duda, oye y por ejemplo en esta macro quiero que se concatenen estos dos argumentos e imprimir la cadena pero no se por que no compila bien

Código C++:
Ver original
  1. #include <stdio.h>
  2. #define HOLA(x, y) x ## y
  3.  
  4. int main ()
  5.  
  6. {
  7.  
  8. char *a = HOLA ( o,k );
  9.  
  10.  
  11. return 0;
  12.  
  13. }
  #4 (permalink)  
Antiguo 04/08/2010, 15:21
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: COMO UTILIZAR #error y #pragma

Hola,

Las instrucciones del pre-procesador #error y #pragma son dependientes del compilador que estés usando. Y sirven para indicarle al compilador ciertas opciones que no se aplican a todo el programa. Y varían de compilador a compilador, no solo para generar warnings, sirve para controlar ciertas variables internas del compilador, como el caso de 'warning: unused vars', etc.

Por ejemplo, para deshabilitar cierto pragma en Borland
#pragma warning(disable: 1234)

http://en.wikipedia.org/wiki/C_preprocessor

Saludos,
  #5 (permalink)  
Antiguo 04/08/2010, 15:25
 
Fecha de Ingreso: agosto-2010
Mensajes: 153
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: COMO UTILIZAR #error y #pragma

a ok muchas gracias muy util tu informacion, y como el mensaje que deje arriba con el operador ## para preprocesador, tienes alguna respuesta???? gracias
  #6 (permalink)  
Antiguo 04/08/2010, 17:34
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: COMO UTILIZAR #error y #pragma

Hola,

Cita:
Iniciado por davidtadeo Ver Mensaje
a ok muchas gracias muy util tu informacion, y como el mensaje que deje arriba con el operador ## para preprocesador, tienes alguna respuesta???? gracias
Si, que no lo estas usando correctamente. Su objetivo no es concatenar cadenas, sirve solamente para separar tokens que de otra forma tendrían un significado diferente.

Posiblemente así está mas claro:
http://es.wikipedia.org/wiki/Preprocesador_de_C

No es lo mismo "element##id" que "elementid", de otra forma no se podría hacer la substitución de macros (element, id) en el momento de pre-procesar el código para producir el código intermedio del compilador.

En base a ese ejemplo que mostraste es evidente que no has comprendido que es la 'substitución de macros' con #define. Busca un buen tutorial al respecto.

Saludos,

Etiquetas: utilidades
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:27.