[C con Clase] Macro para gestionar errores

Programante programante en gmail.com
Mie Mar 4 16:43:49 CET 2009


vicente lozano escribió:
> Hola! Bueno me presento, soy Vicente, llevo un tiempo programando en C
> y estoy haciendo el curso para aprender tambien C++.
>
> Ahora mismo estoy intentando hacer una macro como esta:
>
> /...
> //definicion de Constante con las cadenas de error/
> *#define ERRORS = {"Opening file", "Writing file", " Creating
> Socket",...}*
> /..../
> ///definicion de macro/
> *#define check ( cond, errn )  if ( -1==cond ) { fprintf(stderr,
> "ERROR: %s.\n", ERRORS[errn]); return -1 ;}*
> /....
> //uso en el codigo/
> *check( fopen(...) , 0 );*
>
> La macro en si misma funciona pero no se como definir el array ERRORS
> con un define, no se si se podra o si sabeis alguna forma mejor de
> hacer lo que pretendo.
>
> Bueno saludos y gracias por adelantado.
¿Por qué con un #define? Eso lo harías con una variable:
const char* ERRORS[] = {"Opening file", "Writing file", " Creating
Socket",...}

Pero si lo que quieres es buscar errores en funciones 'normales' (con lo
que mirarías errno), utiliza perror() (o strerror() si quieres algo más
de control*). Por otro lado, ten cuidado con valores fuera de rango.


*




Más información sobre la lista de distribución Cconclase