- 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;
}
absolut 12.12.2010 00:54 # +6
TarasB 12.12.2010 01:10 # −13
Что же может означать последовательность символов "->" в языке С... Наверное, это "минус больше". То есть из cc вычитается число, большее чем prev. Да, наверное, так и есть. Очень полезный оператор.
Анонимус 12.12.2010 16:42 # +4
TarasB 12.12.2010 17:19 # −11
eth0 12.12.2010 20:27 # +5
a <> b
Как же это. Наверное, a меньше b, и, одновременно, b меньше a. Или даже a меньше, чем больше b.
Какой полезный оператор.
inkanus-gray 12.12.2010 21:19 # +8
=> больше или равно.
По логике тогда <> меньше или больше.
Почему в Си используется !=, но нет !< и !> — ведь это было бы так логично?
=> и <= — это импликация. Матан-наци негодует!
bugmenot 12.12.2010 21:32 # +11
rat4 12.12.2010 22:28 # +5
ctm 14.12.2010 20:15 # −1
++ i --; -- i ++;
TarasB 12.12.2010 22:59 # +4
absolut 12.12.2010 23:44 # +6
Govnocoder#0xFF 13.12.2010 21:24 # 0
Его практическое применение.
bugmenot 12.12.2010 21:46 # +1
<>
более-менее
англ. море or лес
Q.E.D.?
Dummy00001 12.12.2010 01:30 # +1
ну как если бы прогресс остановился на DOS 3.30 и Turbo Pascal 5.5
gegMOPO4 12.12.2010 01:46 # 0
Dummy00001 12.12.2010 02:21 # +1
это гарантирует что компилятору нужно будет растыкивать по коду инструкции для правильной конвертации из нативного типа (как минимум int) в короткое знаковое - что бы сравнения корректно работали.
НО. за то съекономили два байта!!! правда где съэкомили тоже не ясно потому что тот же стек выравнен как минимум на int.
absolut 12.12.2010 10:16 # 0
rat4 12.12.2010 11:26 # +1
Dummy00001 12.12.2010 14:30 # +4
это все добавляет 1-2 инструкции почти на каждый доступ к int16_t переменной в памяти. инструкции быстрые, но тем неменее CPU пайплайн забивают.
PS хотя тут конечно нужно учитывать баланс расхода памяти vs размер кэша данных. но даже это в принципе как правило не проблема. (cue in "cache-oblivious algorithms").
absolut 12.12.2010 15:10 # 0
Dummy00001 12.12.2010 15:32 # +3
http://en.wikipedia.org/wiki/Stdint.h#Fastest_minimum-width_integer_types
которые на линухе например все (кроме char) опделены в long на 64битах и int на 32битах системе. ([u]int_fast8_t остается [unsigned] char)
gegMOPO4 12.12.2010 11:44 # +1
absolut 12.12.2010 10:14 # 0
gegMOPO4 12.12.2010 11:47 # +1
bugmenot 12.12.2010 23:57 # +3
э?
к сведению: TP5.5 как релиз был прорывом, в первой декаде XIX в. обязательно бампнули старшую версию, а в отделе маркетинга приписали бы пару букв Х и, возможно, Z и слупили бы с юзверей по 400 баков за апгрейд. так-то.
Dummy00001 13.12.2010 00:06 # +2
bugmenot 13.12.2010 01:15 # +1
а про оптимизатор не знаю, надо где-то брать 5.0 и 5.5 и смотреть, типа near impossible
bugmenot 13.12.2010 01:16 # +1
bugmenot 13.12.2010 01:17 # +1
bugmenot 13.12.2010 01:18 # +1
Oleg_quadro 13.12.2010 02:03 # +1
а
тест.
не сожрал
bugmenot 13.12.2010 02:21 # +2
Oleg_quadro 13.12.2010 02:27 # +1
тест.
Ха-ха, точно. Баг
absolut 13.12.2010 07:53 # +2
3.14159265 13.12.2010 20:49 # +1
absolut 13.12.2010 22:52 # +1
говнокод.ру такой говнокод
LLIAMAH 12.12.2010 12:14 # +7
ctm 12.12.2010 21:12 # 0