- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
static int16_t have_upper_dot(cell *c)
{
cell *cc;
int16_t H;
H=my_bases.ps;
cc=c->prev;
if ((cc->flg & c_f_dust) &&
(c->w>4 && cc->h>=2 && cc->w>=2 &&
(abs(cc->h-cc->w)<=H/6 || cc->h<cc->w && cc->w-cc->h<=H/4) &&
cc->col+1>=c->col && cc->col+cc->w-5<=c->col+c->w ||
c->w<=4 && abs(c->col-cc->col+(c->w-cc->w)/2)<=2) &&
cc->row+cc->h-2<=my_bases.b2)
return 1;
cc=c->next;
if ((cc->flg & c_f_dust) &&
(c->w>4 && cc->h>=2 && cc->w>=2 &&
(abs(cc->h-cc->w)<=H/6 || cc->h<cc->w && cc->w-cc->h<=H/4) &&
cc->col+1>=c->col && cc->col+cc->w-5<=c->col+c->w ||
c->w<=4 && abs(c->col-cc->col+(c->w-cc->w)/2)<=2) &&
cc->row+cc->h-2<=my_bases.b2)
return 1;
return 0;
}
Что же может означать последовательность символов "->" в языке С... Наверное, это "минус больше". То есть из cc вычитается число, большее чем prev. Да, наверное, так и есть. Очень полезный оператор.
a <> b
Как же это. Наверное, a меньше b, и, одновременно, b меньше a. Или даже a меньше, чем больше b.
Какой полезный оператор.
=> больше или равно.
По логике тогда <> меньше или больше.
Почему в Си используется !=, но нет !< и !> — ведь это было бы так логично?
=> и <= — это импликация. Матан-наци негодует!
++ i --; -- i ++;
Его практическое применение.
<>
более-менее
англ. море or лес
Q.E.D.?
ну как если бы прогресс остановился на DOS 3.30 и Turbo Pascal 5.5
это гарантирует что компилятору нужно будет растыкивать по коду инструкции для правильной конвертации из нативного типа (как минимум int) в короткое знаковое - что бы сравнения корректно работали.
НО. за то съекономили два байта!!! правда где съэкомили тоже не ясно потому что тот же стек выравнен как минимум на int.
это все добавляет 1-2 инструкции почти на каждый доступ к int16_t переменной в памяти. инструкции быстрые, но тем неменее CPU пайплайн забивают.
PS хотя тут конечно нужно учитывать баланс расхода памяти vs размер кэша данных. но даже это в принципе как правило не проблема. (cue in "cache-oblivious algorithms").
http://en.wikipedia.org/wiki/Stdint.h#Fastest_minimum-width_integer_types
которые на линухе например все (кроме char) опделены в long на 64битах и int на 32битах системе. ([u]int_fast8_t остается [unsigned] char)
э?
к сведению: TP5.5 как релиз был прорывом, в первой декаде XIX в. обязательно бампнули старшую версию, а в отделе маркетинга приписали бы пару букв Х и, возможно, Z и слупили бы с юзверей по 400 баков за апгрейд. так-то.
а про оптимизатор не знаю, надо где-то брать 5.0 и 5.5 и смотреть, типа near impossible
а
тест.
не сожрал
тест.
Ха-ха, точно. Баг
говнокод.ру такой говнокод