Ознакомьтесь с нашей политикой обработки персональных данных
Все избранные     Сообщества
22:32 

Untitled [492]

zHz00
Коллега, которому передали один из проектов, с которым раньше работал я, поставил себе PVS Studio. Статический анализатор кода. И он стал выявлять разные шняги, которые написал, как выяснилось, я (и это подтверждает SVN Blame).

Вот один из таких кусков, высранных мной в 2013 году.

int nx, ny, nresx, nresy;
char file_list[80][261];
unsigned stx[80], sty[80];
fscanf(f, "%d %d %d %d\n", &nx, &ny, &nresx, &nresy);
int nitems, nfiles;
for(nfiles = 0, nitems = 0; !feof(f); nitems++, (strcmp(file_list[nfiles], "-") && (file_list[nfiles][0] != '\0')) ? nfiles++ : 0/*иначе ничего*/)
{
fgets(file_list[nfiles], 261, f), file_list[nfiles][strlen(file_list[nfiles]) - 1] = '\0';
if(strcmp(file_list[nfiles], "-"))
{
fscanf(f, "%d %d\n", &stx[nfiles], &sty[nfiles]);
}
}

//nitems--;// |---+----\_______. КОСТЫЛЬ
//nfiles--;// |---+----/ КОСТЫЛЬ


Что тут происходит конкретно, я уже и сам толком не помню. Предлагаю попробовать догадаться самостоятельно. f -- текстовый файл, откуда что-то считывается.

Интересно тут следующее:
1. Заголовок цикла for содержит не только операцию "запятая" в инициализаторе, но и в повторяемом выражении (третья часть).
2. Первый оператор цикла также содержит в себе операцию "запятая".
3. Комментарий с костылём смешной. Но почему-то закомментирован.
4. PVS Studio ругался не на стиль, а на то, что я условное выражение в операции ?: не обернул в скобки (хотя функционал от этого не меняется, т.к. у && приоритет выше, чем у ?:).

Зачем же были нужны операции запятая в таком количестве? Она тут только ухудшает читаемость. У меня только одна гипотеза. Изначально в теле цикла был только первый оператор. Когда ситуация усложнилась, я не захотел вводить новый блок, поэтому использовал всевозможные извращения, ТОЛЬКО БЫ обойтись одним оператором в теле цикла. Но в итоге сдался. А то, что уже запихнул в заголовок и в операцию "запятая", доставать обратно не стал. Эх...

@темы: Программирование, Говнокод

14:25 

Календарь: Лето 2017

Йолин
Хочу убивать, не вылезая из-под одеялка.
График выхода первых эпизодов сезона Лето 2017


Примечание


Уже вышли

22 июля (сб)
Marvel Future Avengers (8:00 Dlife)
The Reflection Wave One (23:00 NHK)
запись создана: 30.06.2017 в 16:54

@темы: календарь сезона, лето 2017

23:59 

Плацебо

zHz00
В Ашане увидел штуку, которую раньше не видел.

"Уважаемые покупатели! При необходимости вы можете воспользоваться увеличительным стеклом".

И картинка поясняющая, что сквозь лупу можно лучше видеть мелкий шрифт.

А рядом на стене висит специальная пластиковая коробочка. В коробоче лежит лупа. И она приделана к стене при помощи шнура.

Это всё понятно. В общем, взял я по приколу эту лупу в руки и обнаружил... что в ней нет линзы.

@темы: Случай из жизни

14:47 

План сезона: Осень 2017

Йолин
Хочу убивать, не вылезая из-под одеялка.
Предварительный план сезона осень 2017

TV
Ame-iro Cocoa (2017)
Anime-Gataris
Black Clover (2017)
Blend S
Classicaloid (2017)
Code:Realize Sousei no Himegimi
Dies Irae
Dynamic Chord
Gintama. (2017)
Himouto! Umaru-chan (2017)
Hoozuki no Reitetsu (2017)
Houseki no Kuni
Idolmaster Cinderella Girls Gekijou (2017)
Imouto sae Ireba Ii.
Inazuma Eleven: Ares no Tenbin
Infini-T Force
Inuyashiki
Just Because!
Kekkai Sensen & Beyond
Kino no Tabi: The Beautiful World - Animated Series
Kujira no Kora wa Sajou ni Utau
Love Kome: We Love Rice (2017)
Love Live! Sunshine!! (2017)
Mahou Tsukai no Yome
Osomatsu-san 2
Pop Team Epic
Sangatsu no Lion (2017)
Saredo Tsumibito wa Ryuu to Odoru: Dances with the Dragons
Sengoku Night Blood
Shokugeki no Souma: San no Sara
The Idolmaster Side M
TsukiPro The Animation
UQ Holder! Mahou Sensei Negima! 2
Urahara
Yuuki Yuuna wa Yuusha de Aru: Yuusha no Shou


WEB
Dream-Fes! R

OVA / ONA
Ao no Exorcist: Spy Game
Busou Shoujo Machiavellianism OVA
Cardcaptor Sakura: Clear Card Hen - Prologue Sakura to Futatsu no Kuma
Hajimete no Gal OVA
Mecha-ude
Nekopara
Yama no Susume: Omoide Present

MOVIE
Dance with Devils: Fortuna
Donten ni Warau: Gaiden
Eiga Kaiketsu Zorori: ZZ no Himitsu
Eiga Kirakira Precure A La Mode: Paris to! Omoide no Mille-Feuille!
Eiga Youkai Watch: Shadow Side - Oni Ou no Fukkatsu
Gekijouban Hibike! Euphonium: Todoketai Melody
Gekijouban Fate/Stay Night: Heaven's Feel
Gekijouban Mazinger Z
Gekijouban Soushuuhen Haikyuu!!
Gekijou Haikara-san ga Tooru
Godzilla: Kaijuu Wakusei
Koukyoushihen: Eureka Seven - Hi-Evolution
Tokubetsu Han Free! Take Your Marks
Yowamushi Pedal Re:Generation

SPECIAL/OTHER
Girls und Panzer: Saishuushou
Gochuumon wa Usagi Desuka?? Dear My Sister

@темы: осень 2017, план сезона

23:56 

Густо

zHz00
У нас на работе купили кофеварку. Капсульную. Я идейный противник капсульных кофеварок, поскольку они являются типичным примером vendor lock-in. Но я противник-теоретик, т.к. результат их работы не употреблял внутриутробно. Да и работу таких кофеварок наблюдал только издалека.

А тут посмотрел поближе. И увидел то, что остаётся от кофе-капусл. Выглядит это вот так:


Диаметр 54 мм. Высота 32 мм. Я подумал и понял, что это на что-то похоже. Виденное мною ранее. Но на что?

(Смотреть ответ)

@темы: Наблюдения

23:32 

el Samaerro
ургх-мва-ха-ха!
That feel, когда надо бы давно уже отредактировать раздел интересов.
Но так лень))

19:15 

lock Доступ к записи ограничен

Schwert
buried alive
Закрытая запись, не предназначенная для публичного просмотра

void

главная