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

    Всего: 95

  2. Assembler / Говнокод #17584

    +135

    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
    descriptions[result].Append(tblib::Format("%").i(0x12345678, 0xBB));
    
    
    0040E729  push        0BBh 
    0040E72E  push        12345678h                                                                ; ага, запихали параметры для Format::i, заебись; теперь esp=0x0012f1f4
    0040E733  lea         eax,[esp+38h] 
    0040E737  push        eax                                                                      ; esp=0x0012f1f0
    0040E738  lea         ecx,[esp+1Ch] 
    0040E73C  mov         dword ptr [esp+3Ch],offset USER32_NULL_THUNK_DATA+40h (43C1A8h) 
    0040E744  mov         dword ptr [esp+40h],ebp 
    0040E748  mov         dword ptr [esp+44h],1 
    0040E750  call        tblib::HeapCArray<char>::HeapCArray<char><tblib::StringRef> (4161B0h)    ; esp=0x0012f1f4
    0040E755  push        400h                                                                     ; esp=0x0012f1f0
    0040E75A  mov         ecx,offset tbAlloc (18B0C88h) 
    0040E75F  mov         dword ptr [esp+2Ch],ebp 
    0040E763  mov         dword ptr [esp+28h],ebp 
    0040E767  mov         dword ptr [esp+24h],ebp 
    0040E76B  call        tblib::Allocator::Malloc (42C500h)                                       ; esp=0x0012f1f4
    0040E770  mov         dword ptr [esp+20h],eax 
    0040E774  neg         eax  
    0040E776  sbb         eax,eax 
    0040E778  and         eax,400h 
    0040E77D  lea         ecx,[esp+18h] 
    0040E781  mov         dword ptr [esp+24h],eax 
    0040E785  mov         dword ptr [esp+2Ch],0FFFFFFFFh 
    0040E78D  call        tblib::Format::PassToNext (41BC00h)            ; хуй знает почему, но после этой функции esp не меняется, конвенция такая видимо
    0040E792  sub         esp,0Ch                                        ; БЛЯДЬ СУКА НАХУЙ ЁБАНЫЙ ПИЗДЕЦ ТЫ ЧЁ СУКА ТВОРИШЬ ААААААААА!!!!!!!!!!!!!!!!!!!!!!!!
    0040E795  lea         ecx,[esp+24h] 
    0040E799  mov         edi,esp 
    0040E79B  call        tblib::Format::i (42DBA0h)                     ; esp=0x0012f1e8, указывает на мусор, параметры для функции - где-то выше
    ...

    MSVC 2003 релиз

    TarasB, 05 Февраля 2015

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

    +143

    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
    void ** __attribute__((noinline)) findVoidSortMap(void ** list,void *key)
    {
        if (!list) return 0;
        if (!*list) return 0;
        unsigned int count= **(unsigned int**)list;
        char *p=(char*)*list;
        p+=4;
        Element *b=(Element *)p;
     
        long long skey=(long long)key;
     
        while (count>0) {
            void** kt=(void**)&b[count>>1];
            long long rkey=(long long)kt[0];
            if (skey==rkey) return (void**)&kt[1];
            if (skey>rkey) {b+=(count>>1)+1;count--;}
            count=count>>1;
        }
     
        return (void**)-1;
    }

    гуру осемблира на этом коде доказывал, что Эльбрус сосёт
    http://www.gamedev.ru/flame/forum/?id=196722&page=33#m481

    TarasB, 05 Января 2015

    Комментарии (45)
  4. Си / Говнокод #16887

    +131

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    struct tm * localtime (const time_t * timer);
    
    A pointer to a tm structure with its members filled with the values
     that correspond to the local time representation of timer.
    
     The returned value points to an internal object whose validity or
     value may be altered by any subsequent call to gmtime or localtime.

    Я нуб, впервые вижу такой способ вернуть структуру.

    TarasB, 18 Октября 2014

    Комментарии (24)
  5. C++ / Говнокод #16867

    +53

    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
    template <typename T, typename Mid, int N>
    	struct UselessWrapperFillMid
    	{
    		inline static void FillMid (T* t, Mid mid)
    		{
    			mid(t[0], t[N], t[N/2]);
    			UselessWrapperFillMid<T,Mid,N/2>::FillMid (&t[0]  , mid);
    			UselessWrapperFillMid<T,Mid,N/2>::FillMid (&t[N/2], mid);
    		}
    	};
    	
    	template <typename T, typename Mid> 
    	struct UselessWrapperFillMid <T, Mid, 1>
    	{
    		inline static void FillMid (T* t, Mid mid)
    		{
    			(void)t;
    			(void)mid;
    		}
    	};

    Бесит такой понос вместо нормальной рекурсии.
    Но иначе оно не развернётся в последовательность инструкций без ветвлений и вызовов.

    TarasB, 16 Октября 2014

    Комментарии (33)
  6. C++ / Говнокод #16747

    +56

    1. 1
    for (size_t i=v.size()-1; i<v.size(); --i)

    unsigned в массивах не нужен, нахуй усрались длинные массивы?

    TarasB, 22 Сентября 2014

    Комментарии (24)
  7. Си / Говнокод #16567

    +140

    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
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    //block.exe
    //divide information by bloks
    #include<fstream> 
    #include <string>  
    #include <windows.h>
    #include <ctime>   // time
    #include<iostream>
    using namespace std;
    int main()
    {
     FreeConsole();
    
       //dati programe zapustitsia
    
    
    char mask[255];
    
    
    char maski1[255],  maski2[255], maski3[255], maski4[255], maski5[255], maski6[255];
    char maski7[255],  maski8[255],  maski9[255], maski10[255], maski11[255],  maski12[255], maski13[255];
    
    //  [SKIPPED]
    char maski250[255],  maski251[255],  maski252 [255],  maski253[255],  maski254[255],  maski255[255]; 
    char maski256[255];
    
    char maski82[255], maski83[255],maski84[255],maski85[255], maski86[255], maski87[255];
    
    string str2;
    
    ifstream failpozovatelia("fail.txt");
               while (!failpozovatelia.eof())
               {
                failpozovatelia>>mask;
                cout<<mask<<endl;
            ifstream rt(mask);
    
            while (!rt.eof())
               {
    
           rt>>maski1>>maski2>>maski3>>maski4>>maski5>>maski6>>maski7>>maski8>>maski9>>maski10;
         rt>>maski11>>maski12>>maski13>>maski14>>maski15>>maski16>>maski17>>maski18>>maski19>>maski20>>maski21;
         rt>>maski22>>maski23>>maski24>>maski25>>maski26>>maski27>>maski28>>maski29>>maski30>>maski31;
         rt>>maski32>>maski33>>maski34>>maski35>>maski36>>maski37>>maski38>>maski39>>maski40>>maski41>>maski42;
    
    // SKIPPED
    
      cout<<maski1<<maski2<<maski3<<maski4<<maski5<<maski6<<maski7<<maski8<<maski9<<maski10;
         cout<<maski11<<maski12<<maski13<<maski14<<maski15<<maski16<<maski17<<maski18<<maski19<<maski20<<maski21;
         cout<<maski22<<maski23<<maski24<<maski25<<maski26<<maski27<<maski28<<maski29<<maski30<<maski31;
         cout<<maski32<<maski33<<maski34<<maski35<<maski36<<maski37<<maski38<<maski39<<maski40<<maski41<<maski42;
     
    // SKIPPED
    
     ofstream blockfaila("block.txt",ios::out);
     {
         
               blockfaila<<maski1<<maski2<<maski3<<maski4<<maski5<<maski6<<maski7<<maski8<<maski9<<maski10;
          blockfaila<<maski11<<maski12<<maski13<<maski14<<maski15<<maski16<<maski17<<maski18<<maski19<<maski20<<maski21;
          blockfaila<<maski22<<maski23<<maski24<<maski25<<maski26<<maski27<<maski28<<maski29<<maski30<<maski31;
          blockfaila<<maski32<<maski33<<maski34<<maski35<<maski36<<maski37<<maski38<<maski39<<maski40<<maski41<<maski42;
          blockfaila<<maski43<<maski44<<maski45<<maski46<<maski47<<maski48<<maski49<<maski50<<maski51<<maski52;
      
    // SKIPPED
    
     }
       Sleep(128);
    
      blockfaila.close();
    
    
    //wait other opration while done.
    a:
         ifstream nextblock("nextblock.txt");
        {
    
        nextblock>>str2;
        }
    
         string sub3 = "*";
      unsigned int pos2 = str2.find(sub3,0);
      cout << " You have enter " << str2 << endl;
    
        if(pos2 != string::npos)
        {
        {
           Sleep(128);
    
    
        }  
    
           
         else
        {goto a;
        }
    
                        }
                       }
    
    return 0;}

    12 это 35 это 7876...
    126321 124 351895321 84 42 21 11 6 3 2 1 52 26 13 7 421 8+16=32 32 16 8 4 2 1
    00100 1 0 10 100 4+16+64=84 0 0 1 1 0 10 0 0 0 1 0 1000 0 0 0 0 0 0
    821 32 168 4 2 1
    обратно если длины нехватает береш двух значнае, все рабоботает, пересчитай, если не сжимается минусуешь минус 10 и пробуешь сжать снова сжать.

    TarasB, 19 Августа 2014

    Комментарии (478)
  8. C++ / Говнокод #16429

    +50

    1. 1
    2. 2
    3. 3
    []() { std::function<int(int)> foo = 
               [&foo](int k) { return k == 1 ? 1 : k + foo(k-1); }; 
               return foo; }()(3)

    Как написать рекурсивную лямбдру на крестах?

    TarasB, 26 Июля 2014

    Комментарии (100)
  9. C++ / Говнокод #16414

    +35

    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
    main ()
    {
    system("COLOR 0A");
    double ob, x1 , x2 , y1 , y2, p1 , p2 , pi , skolko , status;
     
        system("echo Интерполяция X1 - X2 ");
        system("echo Ввести число:");
        cin >> ob;
     
        system("echo Например 62, C1 = 60, L1 = 1.31 ,C2 = 80 , L2 = 1.29");
        cout << "C1 = ";
               cin >> x1;
        cout << "L1 = " ;
               cin >> x2;
        cout << "C2 = " ;
               cin >> y1;
        cout << "L2 = " ;  
               cin >> y2;
     
          p1 = y1 - x1;
          p2 = y2 - x2;
     
        pi = p2 / p1;
          skolko = ob - x1;
          status = x2 + (pi * skolko);
     
        cout << "_______________________________________________________________";
        cout << endl <<  ob << " = " << status;
        _getch ();
        system("CLS");
     
        return 0;
    }

    с википедии
    вывод с помощью потока уникально сочетается с выводом путём вызова системных команд

    TarasB, 24 Июля 2014

    Комментарии (51)
  10. Java / Говнокод #16233

    +75

    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
    import java.lang.reflect.Field; 
    
    public class Main {
        public static void main(String[] args) throws Exception {
            Class cache = Integer.class.getDeclaredClasses()[0];
            Field c = cache.getDeclaredField("cache");
            c.setAccessible(true);
            Integer[] array = (Integer[]) c.get(cache);
            array[132] = array[133];
    
            System.out.printf("%d",2 + 2);
        }
    }

    Джаважды джва равно пять

    http://ideone.com/1Ap0wW

    TarasB, 25 Июня 2014

    Комментарии (173)
  11. C++ / Говнокод #15881

    +15

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    tblib::operator << (s, curVersion);
    tblib::operator << (s, indPlayer);
    tblib::operator << (s, indDiamond);
    tblib::operator << (s, indDisk);
    tblib::operator << (s, indExit);
    tblib::operator << (s, indDust);

    Нельзя просто взять, и написать
    s << curVersion << indPlayer << indDiamond << indDisk << indExit << indDust;
    потому что глючный крестоблядский крестокомпилятор (MSVS-03) не может выбрать нужную крестоперегрузку.
    "Сразу записать инт, или сначала кастануть его к жопе и записать жопу?"

    TarasB, 01 Мая 2014

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