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

    −1

    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
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    #ifdef DEBUG
    static int (*printfn)(FILE *stream, const char *format, ...) = fprintf;
    #else
    static void (*printfn)(int priority, const char *format, ...) = syslog;
    #endif
    
    /* somewhere in getopt() options */
    #ifdef DEBUG
        printfn = noprintf;
    #else
        printfn = nosyslog;
    #endif
    
    /* elsewhere in a common header file */
    #ifdef DEBUG
    #undef LOG_ERR
    #undef LOG_WARNING
    #undef LOG_INFO
    #define LOG_ERR stderr
    #define LOG_WARNING stderr
    #define LOG_INFO stderr
    #endif
    
    void nosyslog(int priority, const char *format, ...)
    {
        (void)priority;
        (void)format;
    }
    
    int noprintf(FILE *stream, const char *format, ...)
    {
        (void)stream;
        (void)format;
        return 0;
    }

    А попроще способа для --quiet / -DDEBUG нету?

    Запостил: codemonkey, 29 Июля 2018

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

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