1. C++ / Говнокод #3698

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    m_lActiveTab = GetCurSel();
    for (int i = 0; i < GetItemCount(); i++)
    	m_cItemSelected[m_lActiveTab] = false;
    m_cItemSelected[m_lActiveTab] = true;

    Вот так говнокодят в крупных проектах

    Snake2101, 14 Июля 2010

    Комментарии (19)
  2. C++ / Говнокод #3639

    +160

    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
    int S; 
    int A; 
    int random_integer = (rand()%3); 
    cout<<"Skolko vsego palochek\n"; 
    cin>>S; 
    cout<<"Komp zaberaet\n"; 
    S-=random_integer; 
    cout<<s<<"\n";>>A; 
    S-=A; 
    if (S==8) S-=3; cout<<"Komp Zaberaet\n"; 
    if (S==7) S-=2; cout<<"Komp Zaberaet\n"; 
    if (S==6) S-=1; cout<<"Komp Zaberaet\n"; 
    if (S==4) S-=3; cout<<"Komp Zaberaet\n"; 
    if (S==3) S-=2; cout<<"Komp Zaberaet\n"; 
    if (S==2) S-=1; cout<<"Komp Zaberaet\n"; 
    else 
    if (A==1) S-=3; cout<<"Komp Zaberaet\n"; 
    if (A==2) S-=2; cout<<"Komp Zaberaet\n"; 
    if (A==3) S-=1; cout<<"Komp Zaberaet\n"; 
    cout<<s<<"\n";>>A; 
    if (S<=0) cout<<"Vu proigrali\n"; 
    if (A!=3 && A!=2 && A!=1) cout<<"Mogno tolko ot 1-3 palochek\n";

    Вот такой суровый говнокод я встретил в одном из вопросов ВиО. То что код не рабочий и так понятно.

    Ivan0x32, 04 Июля 2010

    Комментарии (38)
  3. C++ / Говнокод #3629

    +157

    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
    MYCString  myexport
    operator+(const MYCString& s, const char* pstr)
    {
      return MYCString(s, pstr);	// Use the special concatenation constructor
    }            
    
    MYCString myexport
    operator+(const char* c, const MYCString& s)
    {
      return MYCString(c) + s.data();
    }
    
    MYCString  myexport
    operator+(const MYCString& a, const MYCString& s)
    {
      return a + s.data();
    }

    Название класса изменено. Он встречается в одном большом проекте в библиотеке-заменителе STL )

    DarthBobr, 02 Июля 2010

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

    +144

    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
    #include <iostream>
    #include <string>
    #include <ctime>
    using namespace std;
    
    template <typename T>
    void SwowArray(T arr[], int n); // #A
    
    template <typename T>
    void ShowArray(T * arr[], int n); // #B
    
    struct debts
    {
    	char name[50];
    	double amount;
    };
    int main() 
    {
    	int things[6] = {12, 34, 43, 21, 56, 666};
    	struct debts mr_dick[3] =
    	{
    		{"Pizdabol Ivan", 999.0},
    		{"Xuesos Vasya", 45.0},
    		{"Prostitutka Alla", 548.0}
    	};
    
    	double * pedo[3];
    	for(int i = 0; i < 3; i++)
    	{
    		pedo[i] = &mr_dick[i].amount;
    	}
    	
    	cout << "Trololo Mr.Dick: \n";
    	ShowArray(things, 6);
    	cout << "Listening Debilov: \n";
    	ShowArray(pedo, 3);
    	cin.ignore();
    	cin.get();
    	return 0;
    }
    // #A
    
    template <typename T> void ShowArray(T arr[], int n)
    {
    	cout << "Template A \n";
    	for(int i = 0; i < n; i++)
    		cout <<arr[i]<<" ";
    	cout << endl;
    }
    
    template <typename T> void ShowArray(T * arr[], int n)
    {
    	cout << "Template B \n";
    	for(int i = 0; i<n; i++)
    		cout <<*arr[i]<< " ";
    	cout << endl;
    }

    не могу понять почему выводится ошибка, как бы не должно ее быть, компилятор указывает на 34 строку

    trololo101010, 02 Июля 2010

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

    +165

    1. 1
    throw new std::bad_alloc();

    У нас в кодеконвеншене принято передавать исключения по указателю. Вчера обнаружил вот это во многих перегрузках оператора new, да и в прочих местах по проекту.

    Говногость, 01 Июля 2010

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

    +168

    1. 1
    2. 2
    3. 3
    SystemDiskLogSingleton::Instance().Add("Системный диск не отвечает на попытки записи данных. Возможно завис его драйвер.", 152, SystemDiskAccessError);
    printStr("Системный диск висит. Обратитесь к системному администратору.");
    loo54: goto loo54;

    Вот такое нашёл в проекте нашего встроенного устройства. Есть один единственный диск в системе. В лог-файл записываются сообщения о различных ошибках. Оказалось, что и сообщение об ошибках доступа к этому диску тоже.

    Говногость, 30 Июня 2010

    Комментарии (42)
  7. C++ / Говнокод #3605

    +165

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    //где-то в далеком-далеком хедере
    typedef long SystemID;
    
    // в коде
    long FARPASCAL sb_ConfigureSystem(SystemID s)
    {
                 .......
                 System * sys = (System*)s;
                 ......
    }

    И в таком духе весь проект.

    DarthBobr, 30 Июня 2010

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

    +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
    class TWSpace: public Wtroka {
        public:
            inline TWSpace()
                : Wtroka(CharToWide(" "))
            {
            }
    };
    
    static inline const Wtroka& Wspace() {
        return *Singleton<TWSpace>();
    }
    
    const Wtroka& WSPACE = Wspace();

    Пробел...

    solarik, 29 Июня 2010

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

    +189

    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
    for (int y=0; y<height; ++y)
    	{
    		int x=0;
    		dstp[x] = (srcp[x+4]*678 + srcp[x+3]*3902 + srcp[x+2]*13618 + srcp[x+1]*28830 + 
    				srcp[x]*18508 + 32768)>>16; ++x;
    		dstp[x] = (srcp[x+4]*678 + srcp[x+3]*3902 + srcp[x+2]*13618 + 
    			(srcp[x-1]+srcp[x+1])*14415 + srcp[x]*18508 + 32768)>>16; ++x;
    		dstp[x] = (srcp[x+4]*678 + srcp[x+3]*3902 + 
    			(srcp[x-2]+srcp[x+2])*6809 + (srcp[x-1]+srcp[x+1])*14415 + 
    			srcp[x]*18508 + 32768)>>16; ++x;
    		dstp[x] = (srcp[x+4]*678 + (srcp[x-3]+srcp[x+3])*1951 + 
    			(srcp[x-2]+srcp[x+2])*6809 + (srcp[x-1]+srcp[x+1])*14415 + 
    			srcp[x]*18508 + 32768)>>16;
    		for (x=4; x<width-4; ++x)
    		{
    			dstp[x] = ((srcp[x-4]+srcp[x+4])*339 + (srcp[x-3]+srcp[x+3])*1951 + 
    					(srcp[x-2]+srcp[x+2])*6809 + (srcp[x-1]+srcp[x+1])*14415 + 
    					srcp[x]*18508 + 32768)>>16;
    		}
    		dstp[x] = (srcp[x-4]*678 + (srcp[x-3]+srcp[x+3])*1951 + 
    				(srcp[x-2]+srcp[x+2])*6809 + (srcp[x-1]+srcp[x+1])*14415 + 
    				srcp[x]*18508 + 32768)>>16; ++x;
    		dstp[x] = (srcp[x-4]*678 + srcp[x-3]*3902 + 
    			(srcp[x-2]+srcp[x+2])*6809 + (srcp[x-1]+srcp[x+1])*14415 + 
    			srcp[x]*18508 + 32768)>>16; ++x;
    		dstp[x] = (srcp[x-4]*678 + srcp[x+3]*3902 + srcp[x-2]*13618 + 
    			(srcp[x-1]+srcp[x+1])*14415 + srcp[x]*18508 + 32768)>>16; ++x;
    		dstp[x] = (srcp[x-4]*678 + srcp[x-3]*3902 + srcp[x-2]*13618 + 
    			srcp[x-1]*28830 + srcp[x]*18508 + 32768)>>16;
    		srcp += pitch;
    		dstp += pitch;
    	}

    вот он - бесконстантый код

    3.14159265, 29 Июня 2010

    Комментарии (58)
  10. C++ / Говнокод #3586

    +160

    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
    CBufferHandlerOfPrmtv::CBufferHandlerOfPrmtv
    {
        _ffInt = 0;
        _ffInt = ~_ffInt;
        _ffChar = 0;
        _ffChar = ~_ffChar;
    }
    
    bool CBufferHandlerOfPrmtv::IsFF(unsigned int toCheck, unsigned int toCheckSz)
    {
         if(toCheckSz > sizeof(unsigned int)){
             assert(!testPrmtvs);
             return true;
         }
     
         if(!toCheckSz){
             assert(!testPrmtvs);
             return true;
         }
     
         return (memcmp(&toCheck, &_ffInt, toCheckSz) == 0);
    }

    разбирал щас говешки и вот такое увидел...
    НАХЕРА ?!?!!?
    PS: подскажу. метода проверяет число на 0xff.

    kubrinsky, 28 Июня 2010

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