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

    −43

    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
    const char *byte2binstr(unsigned char byte) {
    #define AA                                    BB(0), BB(1)
    #define BB(b0)                                CC(b0, 0), CC(b0, 1)
    #define CC(b0, b1)                            DD(b0, b1, 0), DD(b0, b1, 1)
    #define DD(b0, b1, b2)                        EE(b0, b1, b2, 0), EE(b0, b1, b2, 1)
    #define EE(b0, b1, b2, b3)                    FF(b0, b1, b2, b3, 0), FF(b0, b1, b2, b3, 1)
    #define FF(b0, b1, b2, b3, b4)                GG(b0, b1, b2, b3, b4, 0), GG(b0, b1, b2, b3, b4, 1)
    #define GG(b0, b1, b2, b3, b4, b5)            HH(b0, b1, b2, b3, b4, b5, 0), HH(b0, b1, b2, b3, b4, b5, 1)
    #define HH(b0, b1, b2, b3, b4, b5, b6)        II(b0, b1, b2, b3, b4, b5, b6, 0), II(b0, b1, b2, b3, b4, b5, b6, 1)
    #define II(b0, b1, b2, b3, b4, b5, b6, b7)    STR(b0 ## b1 ## b2 ## b3 ## b4 ## b5 ## b6 ## b7)
    #define STR(s)                                #s
    
        static const char *table[256] = { AA };
        return table[byte];
    
    #undef AA
    #undef BB
    #undef CC
    #undef DD
    #undef EE
    #undef FF
    #undef GG
    #undef HH
    #undef II
    #undef STR
    }

    Запостил: serg_ik, 14 Января 2016

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

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