Цитата(ветерок @ May 27 2012, 21:45)

моя не понимать что это означает.Си (winavr) это по-моему полное свинство.
Код
static void advanceCircleByFixedAngle(void)
{
char d;
#define DIVIDE_BY_64(val) (val + (val > 0 ? 32 : -32)) >> 6 /* И вот это,ну вот что за херня с набором символов? */
reportBuffer.dx = d = DIVIDE_BY_64(cosinus); /* Вот это, что за хрень такая понаписана ?*/
sinus += d;
reportBuffer.dy = d = DIVIDE_BY_64(sinus);
cosinus -= d;
}
#define DIVIDE_BY_64(val) (val + (val > 0 ? 32 : -32)) >> 6
- это МАКРОС под названием DIVIDE_BY_64
если вместо переменной val подставить значение то он вычислит следующее:
1. если значение >0 то берем число 32, если <=0 , то берем число -32
2. к этому числу прибавляем "значение"
3. результат сдвигаем на 6 бит вправо, т.е. делим на 64
Это все равно, что подставить в строку
reportBuffer.dx = d = DIVIDE_BY_64(cosinus);
вместо DIVIDE_BY_64(cosinus)
вот это: (cosinus + (cosinus > 0 ? 32 : -32)) >> 6;