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

    +169

    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
    #define AS_STRING2(ARG) #ARG
    #define AS_STRING(ARG) AS_STRING2(ARG)
    
    #define PORT 5473
    		const uint16_t g_config_port=PORT;
    		const std::string g_config_port_string=AS_STRING(PORT);
    #undef PORT
    
    #define PORT 5474
    		const uint16_t g_request_port=PORT;
    		const std::string g_request_port_string=AS_STRING(PORT);
    #undef PORT
    
    #define PORT 5475
    		const uint16_t g_response_port=PORT;
    		const std::string g_response_port_string=AS_STRING(PORT);
    #undef PORT
    
    #undef AS_STRING
    #undef AS_STRING2

    Чувак нереально любит препроцессор, что говорит от том, что даже Страуструпа не читал.

    Запостил: gvy, 06 Апреля 2012

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

    • Кресто*бство в терминальной стадии.
      Ответить
    • Нахуй так делать?
      Ответить
      • Я ожидал услышать от тебя "это ж кресты, там всё через жопу".
        Ответить
      • Самодокументирующися код: чтобы было понятно, как получили число 5473 - это же не просто случайный набор цифр, а PORT!
        Ответить
      • Действительно. Можно же гораздо проще:

        #define DEF_PORT(type, num) \
        const uint_16_t g_##type##_port=num; \
        const std::string g_##type##_port_string=#num;

        DEF_PORT(config, 5473)
        DEF_PORT(request, 5474)
        DEF_PORT(response, 5475)

        #undef DEF_PORT
        Ответить
    • показать все, что скрытоvanished
      Ответить
    • Его лицо было так близко, что Вит чувствовал тёплое дыхание. Какое-то новое, прежде незнакомое ощущение теплом разлилось внутри, и он нервно сглотнул. Наверное, так себя чувствует кролик перед удавом. Однако сдаваться он не собирался - вскинул голову и упрямо посмотрел Руслану в глаза.
      Ответить

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