psilogic: (Default)
[personal profile] psilogic
Задачка: как оптимизировать такой код, чтобы убрать копи-пасты?
Напрашивается заведение двух функций... а, может, кто-нибудь знает другие трюки?


if (undoCase)
{
	if (op & OpBefore)
	{
		uf.read(&hb, sizeof(hb));
		*hNew= hb;
		++hNew;
		++i;
	}
	if (op & OpAfter)
	{
		uf.seek(sizeof(GHarmonicBase), SEEK_CUR);//pass redo data
		++hOld;
	}
}
else
{
	if (op & OpBefore)
	{
		uf.seek(sizeof(GHarmonicBase), SEEK_CUR);//pass undo data
		++hOld;
	}
	if (op & OpAfter)
	{
		uf.read(&hb, sizeof(hb));
		*hNew= hb;
		++hNew;
		++i;
	}
}


Upd: Порядок вызова seek/read важен - там в файле два последовательных блока, наличие/отсутствие которых определяется флагами OpAfter/OpBefore.

Date: 2011-04-05 03:01 pm (UTC)
From: [identity profile] psilogic.livejournal.com
уровень понял :)

Date: 2011-04-05 03:06 pm (UTC)
From: [identity profile] sfy-y.livejournal.com
Увидел. Так это ошибка by design.

Пойдете с электронным паспортом через контроль - кивните, стэк драйверов там мой. :)

Date: 2011-04-05 03:11 pm (UTC)
From: [identity profile] psilogic.livejournal.com
"стек драйверов" - какие слова знаете :))))

Date: 2011-04-05 03:33 pm (UTC)
From: [identity profile] sfy-y.livejournal.com
Так случилось. Я и Кнута читал, и Оллонгрена, и Мартина, и много кого ещё. Когда-то писал ЦУПы (6 штук). В 2005-2006 от скуки написал драйверы для электронных паспортов (по заказу ГУП Атлас).

Шли бы Вы со своими редакторами? :)))

Date: 2011-04-09 02:55 pm (UTC)
From: [identity profile] boldcat.livejournal.com
Где у Кнута написано, что по можно посмотреть на названия переменных и переписать логику?

Date: 2011-04-09 03:13 pm (UTC)
From: [identity profile] sfy-y.livejournal.com
А в каком словаре написано, что fat и bold - синонимы?

Date: 2011-04-09 05:58 pm (UTC)
From: [identity profile] boldcat.livejournal.com
:) :) :) :)
А я никнейм не по словарю подбирал :)
Желаю Вам успехов!

Date: 2011-04-09 06:20 pm (UTC)
From: [identity profile] sfy-y.livejournal.com
:))) И Вам.
Page generated Aug. 22nd, 2025 04:29 pm
Powered by Dreamwidth Studios