1. Список говнокодов пользователя Barmaglot

    Всего: 2

  2. C++ / Говнокод #2496

    +146.9

    1. 1
    2. 2
    3. 3
    4. 4
    class ToBeOrNotToBe{};
    void distortion(ToBeOrNotToBe...)
    {
    }

    Код компилируется в 2008 MVS

    Barmaglot, 28 Января 2010

    Комментарии (44)
  3. Си / Говнокод #1761

    +133

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    //рекурсивная процедура создающая структуру меню
    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;
    };

    Эх, бурная была молодость :-)

    Barmaglot, 04 Сентября 2009

    Комментарии (26)