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

    Всего: 3

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

    −51

    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 iseq(int a, int b){ assert(a==b); }
    void ismt(int a, int b){ assert(a+1==b); }
    
    int main(int argc, char **argv){
    
    	{ int j=100, *jp; jp=&argc; iseq(j++, j); assert(j==101); } //100, 100
    	{ int j=100, *jp; iseq(j++, j); jp=&j; assert(j==101); } //100, 100
    	{ int j=100, *jp; iseq(j++, j); assert(&j && j==101); } //100, 100
    	{ int j=100, *jp; ismt(j++, j); assert(j==101); } //100, 100
    	
    	{ int j=100, *jp; jp=&j; printf("\n%d, %d\n", j++, j); assert(j==101); } //100, 100
    	{ int j=100, *jp; printf("%d, %d\n", j++, j); jp=&j; assert(j==101); } //100, 100
    	{ int j=100, *jp; printf("%d, %d\n", j++, j); assert(&j && j==101); } //100, 100
    	{ int j=100; printf("%d, %d\n", j++, j); assert(j==101); } //100, 101
    	
    	{ int j=100, *jp; jp=&j; printf("\n%d, %d\n", ++j, j); assert(j==101); } //101, 100
    	{ int j=100, *jp; printf("%d, %d\n", ++j, j); jp=&j; assert(j==101); } //101, 100
    	{ int j=100; printf("%d, %d\n", ++j, j); assert(j==101); } //101, 101
    	 
    	return 0;
    }

    Кто нибудь знает почему ЭТО работает так? Проверял на нескольких компиляторах везде такой эффект.

    rst256, 31 Октября 2016

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

    +55

    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
    On Wed, 29 Oct 2014 20:29:33 +0000
    via Digitalmars-d <[email protected]> wrote:
    
    > On Wednesday, 29 October 2014 at 20:13:34 UTC, ketmar via 
    > Digitalmars-d wrote:
    > > On Wed, 29 Oct 2014 13:07:38 -0700
    > > Walter Bright via Digitalmars-d <[email protected]> 
    > > wrote:
    > >
    > >> There are still two string types, something you can't quite 
    > >> escape dealing with.
    > > and D has three string types. it's even better than C++!
    > 
    > Only three? C++ has seven:
    > 
    > 1. const char*  /* zero terminated single byte*/
    > 2. const char*  /* zero terminated multi byte */
    > 3. const wchar_t*  /* zero terminated wide */
    > 4. std::string	
    > 5. std::wstring
    > 6. std::u16string
    > 7. std::u32string
    ah, D has those 'char*' family too, but i don't count them as string
    types. ok, C++ wins. again. ;-)

    Хоть и не код, но смешно.
    Источник: http://forum.dlang.org/thread/[email protected]?page=3

    rst256, 18 Ноября 2014

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

    +42

    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
    int complexFunction(int flag)
    {
        QMutexLocker locker(&mutex);
    
        int retVal = 0;
    
        switch (flag) {
        case 0:
        case 1:
            return moreComplexFunction(flag);
        case 2:
            {
                int status = anotherFunction();
                if (status < 0)
                    return -2;
                retVal = status + flag;
            }
            break;
        default:
            if (flag > 10)
                return -1;
            break;
        }
    
        return retVal;
    }

    Пора добавлять отдельную ветку для фрейворка Qt. Это просто клад, так извратить все принципы програмирования :-). Этот код из справки к этому чуду. QMutexLocker - целый класс для того чтобы не нужно было разблокировать мьютекс при выходе из функции! Так они скоро и до сборщика мусора с неявной типизацией дойдут!
    P.S. У кого есть Qq попробуйте в "коде" сборки qmake вызвать include внутри функции.

    rst256, 15 Августа 2014

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