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

    Всего: 3

  2. Си / Говнокод #13508

    +123

    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
    strncpy (szString, GetPropChar(ParentPicture,"Faceplate instance1","IN0_text_ON") , sizeof(szString));
    if (strlen(szString)!=0)	
        { SetPropBOOL(lpszPictureName, "Input Bit 0" , "Visible", 1);
         SetPropBOOL(lpszPictureName, "I_b0" , "Visible", 1);
       }
    else
        { SetPropBOOL(lpszPictureName, "Input Bit 0" , "Visible", 0); 
          SetPropBOOL(lpszPictureName, "I_b0" , "Visible", 0);
        }
    
    strncpy (szString, GetPropChar(ParentPicture,"Faceplate instance1","IN1_text_ON") , sizeof(szString));
    if (strlen(szString)!=0)	
        { SetPropBOOL(lpszPictureName, "Input Bit 1" , "Visible", 1);
         SetPropBOOL(lpszPictureName, "I_b1" , "Visible", 1);
       }
    else
        { SetPropBOOL(lpszPictureName, "Input Bit 1" , "Visible", 0); 
          SetPropBOOL(lpszPictureName, "I_b1" , "Visible", 0);
        }

    Скрипт для WinCC. И так 8 раз подряд.
    Написал начальник отдела разработчиков (Си— не его специализация), как часть большого концептуального объекта, с которым мне и надо работать. А я не могу с этим работать, ощущая вот такие говенные внутренности.

    MereNonsense, 29 Июля 2013

    Комментарии (1)
  3. Си / Говнокод #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)
  4. Си / Говнокод #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)