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

    +4

    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
    DWORD NEAR _fastcall RgbCompare(RGBQUAD rgb1, RGBQUAD rgb2)
    {
        DWORD sum=0;
    
        //
        //  lets do some majic shit so the compiler generates "good" code.
        //
    #define SUMSQ(a,b)                          \
        if (a > b)                              \
            sum += (WORD)(a-b) * (WORD)(a-b);   \
        else                                    \
            sum += (WORD)(b-a) * (WORD)(b-a);
    
        SUMSQ(rgb1.rgbRed,   rgb2.rgbRed);
        SUMSQ(rgb1.rgbGreen, rgb2.rgbGreen);
        SUMSQ(rgb1.rgbBlue,  rgb2.rgbBlue);
    
        return sum;
    }

    Как сложно, оказывается, посчитать (a-b)² на Си. Нужно каждый раз писать макрос для этой операции...

    Запостил: CCAHA9I_CPAHIHA, 30 Августа 2018

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

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