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

    +136.8

    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
    #define CHAINFREE_STATIC_DAT(a, field) {\
        ptr=(typeof(ptr))&(a);\
        if(((typeof(&(a)))(ptr))->field)\
            free(((typeof(&(a)))(ptr))->field);\
        ptr=(typeof(ptr))(((typeof(&a))(ptr))->next);\
        if(ptr) {\
            while(((typeof(&(a)))(ptr))->next) {\
                if(((typeof(&(a)))(ptr))->field)\
                    free(((typeof(&(a)))(ptr))->field);\
                ptr=(typeof(ptr))(((typeof(&a))(ptr))->next);\
                free(((typeof(&(a)))(ptr))->prev);\
            }\
            if(((typeof(&(a)))(ptr))->field)\
                free(((typeof(&(a)))(ptr))->field);\
            free(ptr);\
        }\
        memset(&(a), 0, sizeof(a));\
    }

    Кол-во скобок радует :)

    Запостил: xaionaro, 22 Августа 2009

    Комментарии (13) RSS

    • Почти как scheme...
      Ответить
    • Мамочки! =-O
      Ответить
      • Да всё нормально же. Программист на Лиспе на любом языке пишет, как на Лиспе.
        Ответить
    • А разве можно typeof использовать в логических операциях? Это же тип.
      Да и нет typeof в С. Помоему только в GNU C++.
      Ответить
      • typeof вполне может быть и функцией

        и откуда это чудо?
        Ответить
      • Ну "gcc" понимает typeof и этот код компилируется и успешно работает. Основная проблема тут именно в стилистике :)
        Ответить
    • индусский код
      Ответить
    • Пиздец, за такое - своим подчинённым разбил бы ебало и выгнал нахуй.
      Ответить
      • А можно конкретнее? За что конкретно вы "разбили бы ебало и выгнали бы нахуй" своего подчинённого?

        Это жутко нечитаемый кусок код, но функцию он свою выполняет как надо. Видел в одном месте использование "макро-функции" в "макро-функциях", притом что они размером порядком больше этой, вот там действительно катастрофа; а тут, IMHO, достаточно просто попросить причесать немного код)
        Ответить
      • Вообще, даже если бы я был качественным программистом, я бы к вам точно работать не пошёл :)
        Ответить
    • Кавайно. Очень кавайно. Просто Elfen Laid какой-то...
      Ответить

    Добавить комментарий