[阅读: 470] 2007-07-04 06:49:04
Tinitfun initarray[4]=[init1,init2,init3,init4];
Tfreefun freearray[4]=[free4,free3,free2,free1];
int ret;
int initORfree(isInit)
{
if (isInit)
ret=0;
for (i=0; i<funarraycount; i++)
{
if (isInit)
{ if (initarray[i]())
ret |= bit[i];
else
return 0;
}
else
{ if (ret & bit[i])
freearray[i]();
}
}
return 1;
}
main ()
{
if (! initORfree(1))
initORfree(0);
}