1. Лучший говнокод

    В номинации:
    За время:
  2. Pascal / Говнокод #6676

    +112

    1. 1
    2. 2
    3. 3
    while (FilePos(SrcFile) <> FileSize(SrcFile)) do begin
        BlockRead(SrcFile,Res,1);
    ...

    Пытаюсь одному объяснить кое-что из основ. Мне плохо от его перлов.
    Нехорошо смеяться над новичками, но я уже не выдержал...

    http://www.gamedev.ru/flame/forum/?id=147021&page=10#m148

    TarasB, 15 Мая 2011

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

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    while ( strlen ( &ParseSMS[pos] ) != 0 )
    {
        Byte0 = HexToByte(&ParseSMS[pos]);
        pos += 2;
    
        pSMS->sms[txt_counter] = Byte0;
        txt_counter ++;
    }

    достались исходнички. Человек не знает, как работает strlen
    а буфер то на 140 байт !

    megajohn, 13 Мая 2011

    Комментарии (26)
  4. Pascal / Говнокод #6518

    +121

    1. 1
    2. 2
    3. 3
    for i:=1 to 200000000 do;//имитация паузы
    
    ggProcess.Progress:=ggProcess.Progress+13;

    Ксакеп снова в теме:
    http://www.xakep.ru/magazine/xa/016/050/2.asp
    Имитация паузы, блеять.

    Govnocoder#0xFF, 30 Апреля 2011

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

    +167

    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
    #include <windows.h>
    
    
    
    
    
    struct io
    {
        io()
        {
            SetConsoleTitle(__FUNCSIG__);
        }
        ~io()
        {
            DebugBreak();
        }
    } io_obj;
    
    
    
    
    int main()
    {
    }
    
    typedef void(fn_t)();
    
    #pragma comment(linker, "/merge:.CRT=.rdata")
    
    #pragma data_seg(".CRT$XCA")
    extern "C" fn_t * start[] = {0};
    #pragma data_seg(".CRT$XCZ")
    extern "C" fn_t * finish[] = {0};
    #pragma data_seg()
    
    void call_dtors();
    
    extern "C" void _initterm()
    {
        fn_t **p = start, **q = finish;
        while (p < q)
        {
            if (*p)
                (*p)();
            ++p;
        }
        main();
        call_dtors();
    }
    
    fn_t * dtors[999];
    int c_dtors;
    
    void call_dtors()
    {
        while (c_dtors--)
            dtors[c_dtors]();
    }
    
    extern "C" int atexit(void (__cdecl *func )( void ))
    {
        dtors[c_dtors++] = func;
        return !"unspecified";
    }

    если клепаем что то без CRT и хотим чтоб вызывались
    конструкторы деструкторы статических объектов и хотим свое то
    вот реализация для тех кто этого еще неделал
    https://wasm.ru/forum/viewtopic.php?pid=428250#p428250

    rat4, 17 Апреля 2011

    Комментарии (26)
  6. Си / Говнокод #6270

    +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
    void foo()
    {
        #define A_LEN 32
        #define B_LEN 40
    
        void* tmp_a = malloc(A_LEN);
        memset(tmp, 0, A_LEN);
    
        void* tmp_b = malloc(B_LEN);
        memset(tmp, 0, B_LEN);
    
        /* ... тело функции ...*/
    
        free(tmp_a);
        free(tmp_b);
    }

    Выложил болванку правда, а не сам код, но за то все сразу очень наглядно. При чем дефайны повторяются в каждой функции.

    Imperfectum, 07 Апреля 2011

    Комментарии (26)
  7. SQL / Говнокод #6226

    −162

    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
    USE [VOLTAREN]
    GO
    /****** Object:  UserDefinedFunction [dbo].[myReplace]    Script Date: 04/05/2011 12:11:42 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER FUNCTION [dbo].[myReplace](@NAME varchar(255))
    RETURNS varchar(255)
    BEGIN
    set @NAME = (
    	UPPER(
    replace(
    	replace(
    		replace(
    			replace(
    				replace(
    					replace(
    						replace(
    							replace(
    								replace(
    									replace(
    										replace(
    											replace(
    												replace(
    													replace(
    														replace(
    															replace(
    																replace(
    																	replace(
    																		replace(
    																			replace(
    																				replace(
    																					replace(
    																						replace(
    																							replace(
    																								replace(
    																									replace(
    																										replace(
    																											replace(
    																												replace(
    																													replace(
    																														replace(
    																															replace(
    																																replace(
    																																	replace(
    																																		replace(
    																																			replace(
    																																				@NAME,'*','')
    																																			,'табл','таб')
    																																		,'~','')
    																																	,'`','')
    																																,'<','')
    																															,'>','')
    																														,'}','')
    																													,'{','')
    																												,']','')
    																											,'[','')
    																										,'=','')
    																									,'_','')
    																								,'#','')
    																							,'$','')
    																						,'?','')
    																					,'^','')
    																				,'&','')
    																			,'@','')
    																		,'''','')
    																	,'"','')	
    																,':','')
    															,'%','')
    														,'-','')
    													,'+','')
    												,')','')
    											,'(','')
    										,'N','')
    									,'№','')
    								,'|','')
    							,'\','')
    						,'/','')
    					,'!','')
    				,';','')
    			,',','')
    		,'.','')
    	,' ','')));
    	
    
    return(
    replace(
    	@NAME,
    'покробол','по')
    )
    	
    
    END;

    функция удаления не нужных символов из строки

    cu3blukekc, 05 Апреля 2011

    Комментарии (26)
  8. PHP / Говнокод #6101

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    private $data = array(
    		'name' => '',
    		'organization' => '',
    		'mail' => '',
    		'phone' => '',
    		'comment' => '',
    		'model' => '',
    	);

    Так адекватные люди создают асоциативные массивы? Или по другому?

    greshnik, 27 Марта 2011

    Комментарии (26)
  9. Си / Говнокод #5968

    +125

    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
    #line 411 "ext/standard/var_unserializer.c"
    {
    	YYCTYPE yych;
    
    	if ((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
    	yych = *YYCURSOR;
    	switch (yych) {
    	case 'C':
    	case 'O':	goto yy13;
    	case 'N':	goto yy5;
    	case 'R':	goto yy2;
    	case 'S':	goto yy10;
    	case 'a':	goto yy11;
    	case 'b':	goto yy6;
    	case 'd':	goto yy8;
    	case 'i':	goto yy7;
    	case 'o':	goto yy12;
    	case 'r':	goto yy4;
    	case 's':	goto yy9;
    	case '}':	goto yy14;
    	default:	goto yy16;
    	}
    yy2:
    	yych = *(YYMARKER = ++YYCURSOR);
    	switch (yych) {
    	case ':':	goto yy95;
    	default:	goto yy3;
    	}
    yy3:
    #line 733 "ext/standard/var_unserializer.re"
    	{ return 0; }
    #line 442 "ext/standard/var_unserializer.c"
    yy4:
    	yych = *(YYMARKER = ++YYCURSOR);
    	switch (yych) {
    	case ':':	goto yy89;
    	default:	goto yy3;
    	}
    yy5:
    	yych = *++YYCURSOR;
    	switch (yych) {
    	case ';':	goto yy87;
    	default:	goto yy3;
    	}
    yy6:
    	yych = *(YYMARKER = ++YYCURSOR);
    	switch (yych) {
    	case ':':	goto yy83;
    	default:	goto yy3;
    	}
    yy7:
    	yych = *(YYMARKER = ++YYCURSOR);
    	switch (yych) {
    	case ':':	goto yy77;
    	default:	goto yy3;
    	}
    yy8:
    	yych = *(YYMARKER = ++YYCURSOR);
    	switch (yych) {
    	case ':':	goto yy53;
    	default:	goto yy3;
    	}
    yy9:
    	yych = *(YYMARKER = ++YYCURSOR);
    	switch (yych) {
    	case ':':	goto yy46;
    	default:	goto yy3;
    	}
    yy10:
    	yych = *(YYMARKER = ++YYCURSOR);
    	switch (yych) {
    	case ':':	goto yy39;
    	default:	goto yy3;
    	}
    yy11:
    	yych = *(YYMARKER = ++YYCURSOR);
    	switch (yych) {
    	case ':':	goto yy32;
    	default:	goto yy3;
    	}
    yy12:
    	yych = *(YYMARKER = ++YYCURSOR);
    	switch (yych) {
    	case ':':	goto yy25;
    	default:	goto yy3;
    	}
    yy13:
    	yych = *(YYMARKER = ++YYCURSOR);
    	switch (yych) {
    	case ':':	goto yy17;
    	default:	goto yy3;
    	}
    yy14:
    	++YYCURSOR;
    
    /* далее еще несколько похожих кусков кода чуть менее хардкорных */

    http://svn.php.net/viewvc/php/php-src/trunk/ext/standard/var_unserializer.c?view=markup

    Исходники функции unserialize в php, не зря она так медленно работает на больших массивах...

    dim-s, 13 Марта 2011

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

    +72

    1. 1
    Object key = (Object) (iterator.next());

    alt, 08 Марта 2011

    Комментарии (26)
  11. Pascal / Говнокод #5860

    +128

    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
    uses crt;
    var
    d,m,k:integer;
    begin
    write('Введите день - ');readln(d);
    write('Введите месяц - ');readln(m);
    case m of
    1: k:=365-d;
    2: k:=365-(31+d);
    3: k:=365- (31+28+d);
    4: k:=365- (31+28+31+d);
    5: k:=365- (31+28+31+30+d);
    6: k:=365- (31+28+31+30+31+d);
    7: k:=365- (31+28+31+31+30+30+d);
    8: k:= 365-(31+28+31+31+30+30+31+d);
    9: k:= 365- (31+28+31+31+30+31+30+31+d);
    10: k:=365- (31+28+31+31+30+31+31+30+30+d);
    11: k:=365- (31+28+31+31+30+31+31+30+30+31+d);
    12: k:=365- (31+28+31+31+30+31+31+30+31+30+30+d);
    end;
    writeln('До конца года осталось ',k,' дн.');
    end.

    Juris_Kabanis, 03 Марта 2011

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