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

    Всего: 48

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

    −45

    1. 1
    2. 2
    3. 3
    #define _XYNTA_SKIP \
        continue; \
        }

    Зачѣмъ?

    codemonkey, 15 Июня 2016

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

    −52

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    if ((err = some_function(args)) != GREAT_SUCCESS) {
        debug_print("some function failed, err = %u", err);
        goto out;
    }
    
    out:
        /* cleanup */
        return err;

    "ко-ко-ко оставить гото на future fucking use куд-кудах"

    codemonkey, 31 Марта 2016

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

    −106

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    int stupid(int a)
    {
        return a + 1 > a;
    }
    
    int main(void)
    {
        int a = -1;
        printf("%d\n", stupid(a));
        return 0;
    }

    И вот так один UB портит всё.

    ~ $ gcc -c test.c -O3
    ~ $ ./test
    1


    Ибо:
    Disassembly of section .text:

    0000000000000000 <stupid>:
    0: b8 01 00 00 00 mov $0x1,%eax
    5: c3 retq

    codemonkey, 15 Февраля 2016

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

    −47

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    /* optimized division by 16 */
    n >>= 4
    
    /* optimized remainder by 16 */
    k &= 0xF

    И такой prematurely optimized хуеты в кодобазе ОЧЕНЬ МНОГО.

    codemonkey, 01 Февраля 2016

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

    +140

    1. 1
    2. 2
    3. 3
    4. 4
    /*
     * To the unenlightened: This sets the X (where X is variable between calls) LSB's of mask to 1.
     */
    mask = ~(~0 << X);

    Байтопроблемушки. Me gusta.

    codemonkey, 27 Мая 2015

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

    +137

    1. 1
    printk(KERN_CRIT "AAA\n");

    Ебу и патчу.

    codemonkey, 18 Мая 2015

    Комментарии (27)
  8. Куча / Говнокод #18141

    +142

    1. 1
    URxvt*foreground: #C0C0C0

    Вот что монокай с urxvt делает.

    codemonkey, 10 Мая 2015

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

    +143

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    static int card_open(struct inode *inode, struct file *f)
    {
        unsigned int		minor = MINOR(inode->i_rdev);
    
        DEBUG(KERN_CRIT "Driver: card_open()\n");
        f->private_data = (void *)(unsigned long long)minor;
    
        return 0;
    }

    А вместо минора надобно захуярить указатель на struct some_idiot_wrote_this *asshole в f->private_data.

    codemonkey, 07 Мая 2015

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

    +142

    1. 1
    2. 2
    3. 3
    4. 4
    fstat(fd, &s);
    count = s.st_size % sizeof(uint32_t) == 0 ? s.st_size : s.st_size + (sizeof(uint32_t) - s.st_size % sizeof(uint32_t));
    buf = malloc(count);
    /* etc */

    Собственно, round up to nearest 32-bit word. Нет ли метода покрасивше?

    codemonkey, 30 Апреля 2015

    Комментарии (0)
  11. Си / Говнокод #18062

    +142

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if (false == very_long_function(arg1, arg2, ...)) 
    {
        if (false == very_long_other_function(even_more_args) 
        {
            do_something();
        }
        else 
        {   
            do_something_else();
        }
    }

    И вот такими многоэтажками забит весь проект.

    codemonkey, 26 Апреля 2015

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