- 1
- 2
- 3
- 4
class ToBeOrNotToBe{};
void distortion(ToBeOrNotToBe...)
{
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 2
+146.9
class ToBeOrNotToBe{};
void distortion(ToBeOrNotToBe...)
{
}
Код компилируется в 2008 MVS
+133
//рекурсивная процедура создающая структуру меню
byte form_hash(phasharray vrarr, WORD* ni, byte* ne)
{
byte ct=MainMenu[(*ni)].numSubMenus, ict;
phasharray vrarrcr;
if((*ni)++==0) pmain=vrarr; // если первый проход - запоминаем ссылку на главное меню
for (ict=0; ict<ct; ict++)
{
vrarr->hash[ict].pitem=(tmenuitem*)RTKGetBuffer(&menuPool);
//инициализация строки элемента
scopy0(((*((*vrarr).hash[ict].pitem)).menustr), MainMenu[*ni].nameMenu);
if (MainMenu[*ni].numSubMenus!=0)
{
(*((*vrarr).hash[ict].pitem)).pnextlev=RTKGetBuffer(&hashMenuPool);// создание хэша
vrarrcr=(phasharray)(*((*vrarr).hash[ict].pitem)).pnextlev;//вводим новую переменную для облегчения доступа к созданной структуре
(*vrarr).hash[ict].quantity=(byte)MainMenu[*ni].numSubMenus;//запоминаем количество элементов в меню уровнем выше
(*vrarrcr).pPrevLev=vrarr; // ссылка на предыдущий элемент
(*((*vrarr).hash[ict].pitem)).fpmenu=true;
if (MainMenu[*ni].numSubMenus==MENU_FUNC) // вызов процедуры динамического формирования меню
{
menupr_params.vrarr=vrarrcr;
menupr_params.phashprev=vrarr;
menupr_params.ni=ni;
menupr_params.ne=ne;
menupr_params.ict=ict;
(MainMenu[*ni].pproc)();
(*ni)++;
} else
{
if(MainMenu[*ni].pproc) // если исключение (перед входом в подменю необходимо выполнить функцию)
{
changeArr[(*ne)++]=vrarrcr;
(*((*vrarr).hash[ict].pitem)).pexec=MainMenu[*ni].pproc;
(*((*vrarr).hash[ict].pitem)).fpmenu=false;
};
// исправляем значение элементов
(*(vrarr)).hash[ict].quantity=form_hash(vrarrcr, ni, ne);
};
// проверка сформированного меню
switch ((*(vrarr)).hash[ict].quantity)
{
case MENU_NO: // нет подменю
// освободить эл-т
RTKFreeBuffer(&hashMenuPool, vrarrcr);
(*((*(vrarr)).hash[ict].pitem)).pexec=*menu_refresh;
(*((*(vrarr)).hash[ict].pitem)).fpmenu=false;
break;
case MENU_NOEL: // не формировать эл-т
// освободить эл-т
RTKFreeBuffer(&hashMenuPool, vrarrcr);
RTKFreeBuffer(&menuPool, vrarr->hash[ict].pitem);
ict--;
ct--;
break;
case MENU_FUNC: // нет подменю, нормальная функция
RTKFreeBuffer(&hashMenuPool, vrarrcr);
(*(vrarr)).hash[ict].quantity=0;
//(*((*vrarr).hash[ict].pitem)).fpmenu=false;
break;
}
} else // заполнение элемента
{
(*((*vrarr).hash[ict].pitem)).pexec=MainMenu[*ni].pproc;
(*((*vrarr).hash[ict].pitem)).fpmenu=false;
(*ni)++;
};
};
return ct;
};
Эх, бурная была молодость :-)