Заодно, так и быть, поделюсь с Доком военной тайной как впихнуть несколько операторов в один :-). Все отчень просто. Жаль,не на чем проверить, может, синтаксис подработать, важен только принцип и полет фаниазии, может, выражение в дифайне надо объять () - в некоторых случаях это надо.
А ключевые слова при поиске в дебрях ANSI, Док, такие: "выражения, разделенные запятой, выполняются слева направо". И (от себя замечу) считаются одним оператором. Hi, Doc!
#define something() P1OUT = 123, printf("Hi,Doc!\n"), P2OUT = 234
void Test()
{
uint8_t i;
something();
for( i = 0; i < 5; ++i)
something();
if(P1IN & 1) something();
else printf("test");}