#include<stdio.h>
typedef enum n_error
{
ERROR_1= 1,
ERROR_2= 2,
ERROR_3= 4,
ERROR_4= 8,
ERROR_5= 16,
ERROR_6= 32,
ERROR_7= 64,
ERROR_8=128,
} n_error;
char *s_error[]={
"Nessun errore",
"Errore numero 1",
"Errore numero 2",
"Errore numero 3",
"Errore numero 4",
"Errore numero 5",
"Errore numero 6",
"Errore numero 7",
"Errore numero 8"
};
int gest_err (int mode,int value)
{
static errors;
switch (mode)
{
case 0:
errors=value;
break;
case 1:
errors|=value;
break;
case 2:
break;
}
return (errors);
}
int reset_err (int value)
{
return (gest_err (0,0));
}
int set_err (int value)
{
return (gest_err (1,value));
}
int get_err ()
{
return (gest_err (2,0));
}
int show_err ()
{
int x,k,err=get_err();
for (k=0;err;k++)
{
if(x=err & (1 << k))
{
err^=x;
printf ("%s\n",s_error[k+1]);
}
}
}
int main()
{
reset_err (0);
set_err (ERROR_4);
set_err (ERROR_6 | ERROR_7);
show_err ();
return 0;
}
Saluti,
Max