Autor
|
Tema: función de seguimiento de errores (Leído 4,661 veces)
|
@synthesize
Wiki
Desconectado
Mensajes: 640
Another Brick in the Wall
|
Buenas a todos, estoy haciendo un proyecto de fin de curso, y para el programa, he creado una función para el seguimiento de errores, dentro de la ejecución del programa. Tengo 3 variables, estado (Que cambia al pasar por cada función) Estado de error (Que mostrará un mensaje de error en caso de ser llamada) y contador de errores, para llevar la cuenta de errores en ejecución. Os presento el código, a ver qué opináis. Pd. Borland C++ 3.1 #include <stdio.h> #define STATE_A 0 #define STATE_B 1 typedef struct FGE { unsigned int fState; unsigned int fStateError; unsigned int fContError; }; unsigned int sasfid(); int main(void) { if (sasfid()!=0) { fprintf(stdout , "Error en sasfid\n"); return -1; } else return 0; } unsigned int sasfid() { FGE Actual; Actual.fState =STATE_A; Actual.fStateError =STATE_A; Actual.fContError =STATE_A; if (Actual.fState!=0 && Actual.fStateError!=0 && Actual.fContError !=0) return STATE_B; else return STATE_A; }
Como digo, por ahora solo es parte del proyecto, esto va a sufrir muchas modificaciones de seguro xD
|
|
|
En línea
|
|
|
|
M3LiNdR1
|
unsigned int sasfid() { FGE Actual; Actual.fState =STATE_A; Actual.fStateError =STATE_A; Actual.fContError =STATE_A; if (Actual.fState!=0 && Actual.fStateError!=0 && Actual.fContError !=0) return STATE_B; else return STATE_A; }
Pero por lo que veo, esta función siempre te va a devolver lo mismo, STATE_A. Supongo que le pasaras Actual como parametro de entrada, no?
|
|
|
En línea
|
Va baixar davant dels meus...ulls molt suaument...sense alterar la quietud de la nit,amb un somriure ple de confiança com sino se li escapes res... C/C++ - Prolog - Java - PHP - Python - SQL - ASP.NET - C# - javascript
|
|
|
cbug
Desconectado
Mensajes: 147
|
Es cierto, esa función siempre devolverá 0. ¿No sería conveniente que se pase la estructura a analizar a sasfid?
|
|
|
En línea
|
|
|
|
nicolas_cof
Desconectado
Mensajes: 348
Into the Wild
|
Ademas de lo ya mencionado, tenes declarada mal la estructura... typedef struct FGE { unsigned int fState; unsigned int fStateError; unsigned int fContError; } FGE; Salu10.
|
|
|
En línea
|
|
|
|
@synthesize
Wiki
Desconectado
Mensajes: 640
Another Brick in the Wall
|
La estructura funciona tal y como está, trabajo en Borland C++ 3.1 Y siempre devuelve STATE A porque está bien, el objetivo es que me devuelva B si hay algún error inicializando variables (En el ejemplo no, pero en el proyecto tengo mas) También decir que sustituí && por ||.
|
|
|
En línea
|
|
|
|
nicolas_cof
Desconectado
Mensajes: 348
Into the Wild
|
La estructura funciona tal y como está, trabajo en Borland C++ 3.1 Daemon Freedom, mandalo a la papelera Y siempre devuelve STATE A porque está bien, el objetivo es que me devuelva B si hay algún error inicializando variables Mmmmm tendrias que explicarte un poco mejor, porque yo la verdad no entiendo cual seria la funcionalidad Salu10.
|
|
|
En línea
|
|
|
|
cbug
Desconectado
Mensajes: 147
|
Y siempre devuelve STATE A porque está bien, el objetivo es que me devuelva B si hay algún error inicializando variables Mmmmm tendrias que explicarte un poco mejor, porque yo la verdad no entiendo cual seria la funcionalidad ¿Que devuelva error al inicializar una variable? ¿Cómo sucederá esto si se supone que estás inicializando bien dicho campo de la estructura, en cualquier otro caso el compilador es el que informará el error cierto? No entiendo la finalidad
|
|
|
En línea
|
|
|
|
@synthesize
Wiki
Desconectado
Mensajes: 640
Another Brick in the Wall
|
A ver, esto está destinado para programas grandes, donde es probable que haya errores y se quieres hacer un seguimiento de ellos (Independientemente del compilador) y me basé en algo del arduino, en la sentencia setup, la cual se usa par inicializar cosas. Por lo cual, al inicializar todo, puede haber cualquier tipo de error (Todos somos humanos, ) así que en caso de haber algo mas iniciado, que no detecta el compilador, y que nos puede dar problemas, devolvemos B y fin. De todas formas como dije, le quedan muuuchas modificaciones, y a todo el código, no solo a esa parte
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
La estructura funciona tal y como está, trabajo en Borland C++ 3.1 Daemon Freedom, mandalo a la papelera += 1
|
|
|
En línea
|
|
|
|
@synthesize
Wiki
Desconectado
Mensajes: 640
Another Brick in the Wall
|
La estructura funciona tal y como está, trabajo en Borland C++ 3.1 Daemon Freedom, mandalo a la papelera += 1 Ojalá, pero es el que me hacen usar en clase. En casa programo bajo GCC no os preocupéis XD
|
|
|
En línea
|
|
|
|
|
|