September 22nd, 2009

лилия, походы

Кстати, об оптимизации

Небольшая заметка себе на память:
допустим есть две переменные

	uint8_t i;
	uint32_t counter;

тогда операции типа

	i = (uint8_t) counter;

лучше писать в виде

	i = *(uint8_t *) &counter;

Три лишних символа в коде убирает три лишних инструкции в бинарнике, причём, эти инструкции двухтактовые, то есть общая экономия - 6 тактов процессора!
А ещё с помощью этого приёма удобно получать доступ к отдельным байтам переменной:

	buf[i] = *((uint8_t *)(&counter)+0);
	buf[j] = *((uint8_t *)(&counter)+1);