- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 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)² на Си. Нужно каждый раз писать макрос для этой операции...
Хотя, конечно, любопытно.
Вызывай, сцуко, быстро
~ bormand
И правильно, ибо отрицательные числа это обман.